Horonock: Einzelne Zeichen aus txt auslesen und in src von img packen

Hallo @ all!
Ich habe eine txt, bestehend aus 10 Zeichen.
Die Zeichen 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, . können darin vorkommen.
Jetzt habe ich zu jedem Zeichen auch ein gleichnamiges Bild mit der Endung .png gemacht - Ausnahme ist der . der Bildname ist "c".
Nun habe ich gleich der txt, 10 Bilder-Tags. Allerdings soll die src mit dem jeweiligen Zeichen der txt der Reihenfolge nach ersetzt werden.
Kann mir da jemand einen Code für Basteln?
Hoffe das hat jeder verstanden.. Auf dem Gebiet php bin ich noob, in HTML kenne ich mich gut aus.
Danke im vorraus
 Horonock

  1. Ich habe eine txt, bestehend aus 10 Zeichen.
    Die Zeichen 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, . können darin vorkommen.
    Jetzt habe ich zu jedem Zeichen auch ein gleichnamiges Bild mit der Endung .png gemacht - Ausnahme ist der . der Bildname ist "c".
    Nun habe ich gleich der txt, 10 Bilder-Tags. Allerdings soll die src mit dem jeweiligen Zeichen der txt der Reihenfolge nach ersetzt werden.

    in Perl
    in diesem Fall in zwei Schritten
    $in =~ s/(.)/<img src="c.png" alt="comma">/g;
    $in =~ s/([0-9])/<img src="$1.png" alt="$1">/g;

    Portierung nach PHP ist dir überlassen.

    Das hört sich an, wie wenn jemand ein Captcha bauen will, das nur Maschinen lösen können.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. in Perl
      in diesem Fall in zwei Schritten
      $in =~ s/(.)/<img src="c.png" alt="comma">/g;
      $in =~ s/([0-9])/<img src="$1.png" alt="$1">/g;

      Portierung nach PHP ist dir überlassen.

      Okay danke.. und wie baue ich das nun ein? Wäre geil wenn du mir den Code ganz machst oder mir sagst how to, weil auf dem Gebiet PHP bin ich n kackboon :D

      Das hört sich an, wie wenn jemand ein Captcha bauen will, das nur Maschinen lösen können.

      Wird es aber nicht. :P

      MfG

      1. Portierung nach PHP ist dir überlassen.
        Okay danke.. und wie baue ich das nun ein? Wäre geil wenn du mir den Code ganz machst oder mir sagst how to, weil auf dem Gebiet PHP bin ich n kackboon :D

        HowTo ist da
        http://www.php.net/manual/de/function.preg-replace.php

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. Ich hab jetzt mal was versucht. Aber das funktioniert nicht.

          <?php
          $zeichenkette = include("../Zahlen.txt");

          $suchmuster[0] = '/0/';
          $suchmuster[1] = '/1/';
          $suchmuster[2] = '/2/';
          $suchmuster[3] = '/3/';
          $suchmuster[4] = '/4/';
          $suchmuster[5] = '/5/';
          $suchmuster[6] = '/6/';
          $suchmuster[7] = '/7/';
          $suchmuster[8] = '/8/';
          $suchmuster[9] = '/9/';
          $suchmuster[10] = '/./';

          $ersetzungen[0] = "<img scr='0.png'>";
          $ersetzungen[1] = "<img scr='1.png'>";
          $ersetzungen[2] = "<img scr='2.png'>";
          $ersetzungen[3] = "<img scr='3.png'>";
          $ersetzungen[4] = "<img scr='4.png'>";
          $ersetzungen[5] = "<img scr='5.png'>";
          $ersetzungen[6] = "<img scr='6.png'>";
          $ersetzungen[7] = "<img scr='7.png'>";
          $ersetzungen[8] = "<img scr='8.png'>";
          $ersetzungen[9] = "<img scr='9.png'>";
          $ersetzungen[10] = "<img scr='c.png'>";

          echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);
          ?>

          Woran liegt das?

          1. Ich hab jetzt mal was versucht. Aber das funktioniert nicht.

            undef ^F

            $suchmuster[10] = '/./';

            studiere, was das matcht.

            Woran liegt das?

            Erkläre "funktioniert nicht"!

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. Ich hab jetzt mal was versucht. Aber das funktioniert nicht.

              undef ^F

              ?

              $suchmuster[10] = '/./';

              studiere, was das matcht.

              Ok, moment..

              Woran liegt das?

              Erkläre "funktioniert nicht"!

              Naja.. er zeigt die zahlen aus zahlen txt genauso an wie sie in zahlen.txt stehen. Nix mit Bild oder so..

              1. Hab n Fehler gefunden..

                <?php
                $zeichenkette = include("../Last update.txt");

                $suchmuster[0] = '/0/';
                $suchmuster[1] = '/1/';
                $suchmuster[2] = '/2/';
                $suchmuster[3] = '/3/';
                $suchmuster[4] = '/4/';
                $suchmuster[5] = '/5/';
                $suchmuster[6] = '/6/';
                $suchmuster[7] = '/7/';
                $suchmuster[8] = '/8/';
                $suchmuster[9] = '/9/';
                $suchmuster[10] = '/./';

                $ersetzungen[0] = "<img src='0.png'>";
                $ersetzungen[1] = "<img src='1.png'>";
                $ersetzungen[2] = "<img src='2.png'>";
                $ersetzungen[3] = "<img src='3.png'>";
                $ersetzungen[4] = "<img src='4.png'>";
                $ersetzungen[5] = "<img src='5.png'>";
                $ersetzungen[6] = "<img src='6.png'>";
                $ersetzungen[7] = "<img src='7.png'>";
                $ersetzungen[8] = "<img src='8.png'>";
                $ersetzungen[9] = "<img src='9.png'>";
                $ersetzungen[10] = "<img src='c.png'>";

                echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);
                ?>

                scr anstatt src geschrieben. Jetzt passiert aber genauso wenig wie vorher..
                was macht denn

                $suchmuster[10] = '/./';

                MfG

                1. was macht denn

                  $suchmuster[10] = '/./';

                  Du weist eine RE einem Arrayelement zu.
                  Den Inhalt der RE findest du beschrieben
                  http://www.php.net/manual/de/regexp.reference.meta.php

                  mfg Beat

                  --
                  ><o(((°>           ><o(((°>
                     <°)))o><                     ><o(((°>o
                  Der Valigator leibt diese Fische
                  1. Okay dann habe ich das jetzt so:

                    $suchmuster[10] = '/c/';

                    Jetzt zeigt er das aus der txt immer noch genauso an, nur das hinten

                    ='1.png'>

                    noch drangesetzt wurde.

                    MfG

                    1. Ich habe jetzt folgenden Code:

                      <?php
                      $zeichenkette = include("../Last update.txt"); //in dem Falle 123.123.12

                      $suchmuster[0] = '/0/';
                      $suchmuster[1] = '/1/';
                      $suchmuster[2] = '/2/';
                      $suchmuster[3] = '/3/';
                      $suchmuster[4] = '/4/';
                      $suchmuster[5] = '/5/';
                      $suchmuster[6] = '/6/';
                      $suchmuster[7] = '/7/';
                      $suchmuster[8] = '/8/';
                      $suchmuster[9] = '/9/';
                      $suchmuster[10] = '/c/';

                      $ersetzungen[0] = "<img src='0.png'>";
                      $ersetzungen[1] = "<img src='1.png'>";
                      $ersetzungen[2] = "<img src='2.png'>";
                      $ersetzungen[3] = "<img src='3.png'>";
                      $ersetzungen[4] = "<img src='4.png'>";
                      $ersetzungen[5] = "<img src='5.png'>";
                      $ersetzungen[6] = "<img src='6.png'>";
                      $ersetzungen[7] = "<img src='7.png'>";
                      $ersetzungen[8] = "<img src='8.png'>";
                      $ersetzungen[9] = "<img src='9.png'>";
                      $ersetzungen[10] = "<img src='c.png'>";

                      echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);
                      ?>

                      Und angezeigt wird:

                      123c123c12<img sr<img src='c.png'>='1.png'>

                      Es funktioniert wie man sieht nicht..
                      Was habe ich jetzt falsch gemacht?
                      MfG

                      1. $zeichenkette = include("../Last update.txt"); //in dem Falle 123.123.12

                        Tutu mir leid, lautet wie folgt:

                        $zeichenkette = include("../Last update.txt"); //in dem Falle 123c123c12

                      2. <?php
                        $zeichenkette = include("../Last update.txt"); //in dem Falle 123.123.12

                        $suchmuster[0] = '/0/';

                        ...

                        $suchmuster[10] = '/c/';

                        $ersetzungen[0] = "<img src='0.png'>";

                        ...

                        $ersetzungen[10] = "<img src='c.png'>";

                        echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);
                        ?>

                        Und angezeigt wird:
                        123c123c12<img sr<img src='c.png'>='1.png'>
                        Es funktioniert wie man sieht nicht..
                        Was habe ich jetzt falsch gemacht?

                        php scheint mühe damit zu haben, dass du die '' nicht quotest.

                        versuche mal das

                        $suchmuster[0] = '/([0-9c])/';
                        $ersetzungen[0] = "<img src='$1.png'>";

                        Es ist wichtig, dass c zuerst kommt, damit nicht ein c in src neuerlich ersetzt wird.
                        in meiner Version matche ich eine Zeichenklasse [0-9c],
                        speichere sie ([0-9c])
                        und setze das gespeicherte im Ergebnis mit $1 ein.

                        mfg Beat

                        --
                        ><o(((°>           ><o(((°>
                           <°)))o><                     ><o(((°>o
                        Der Valigator leibt diese Fische
                        1. versuche mal das

                          $suchmuster[0] = '/([0-9c])/';
                          $ersetzungen[0] = "<img src='$1.png'>";

                          Es ist wichtig, dass c zuerst kommt, damit nicht ein c in src neuerlich ersetzt wird.
                          in meiner Version matche ich eine Zeichenklasse [0-9c],
                          speichere sie ([0-9c])
                          und setze das gespeicherte im Ergebnis mit $1 ein.

                          Nu Zeigt er im angezeigten Quellcode

                          123c123c12<img src='1.png'>

                          an.

                          <?php
                          $zeichenkette = include("../Last update.txt");

                          $suchmuster[0] = '/([0-9c])/';
                          $ersetzungen[0] = "<img src='$1.png'>";

                          echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);
                          ?>

                          so richtig oder?

                          MfG

                          1. Nu Zeigt er im angezeigten Quellcode

                            123c123c12<img src='1.png'>

                            an.

                            <?php
                            $zeichenkette = include("../Last update.txt");

                            $suchmuster[0] = '/([0-9c])/';
                            $ersetzungen[0] = "<img src='$1.png'>";

                            echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);
                            ?>

                            dann spendieren wir noch den global match modifier:
                            //g
                            $suchmuster[0] = '/([0-9c])/g';

                            MfG

                            mfg Beat

                            --
                            Woran ich arbeite:
                            X-Torah
                            Plädoyer für eine alte Mystik
                            und Vers-Einteilung
                            in der Torah und der Apokalypse
                            Beat Stoecklin 2008
                                             /|
                              <°)))o><   __ / |    /|
                                        /__\ _|___/ |     ><o(((°>
                                       OvVVvO    __ |        ><o(((°>
                            <°)))o><  /v    v\/  |
                             <°)))o>< ^    ^/_/_         ><o(((°>
                                       ^^^^/___/
                                        ----            ><o(((°>
                            ><o(((°>           ><o(((°>
                               <°)))o><                     ><o(((°>o
                            Der Valigator leibt diese Fische
                            1. Code:

                              <?php
                              $zeichenkette = include("../Last update.txt");

                              $suchmuster[0] = '/([0-9c])/g';
                              $ersetzungen[0] = "<img src='$1.png'>";

                              echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);
                              ?>

                              Antwort:

                              123c123c12
                              Warning: preg_replace() [function.preg-replace]: Unknown modifier 'g' in /users/ollornog/www/LU/untitled.php on line 7

                              MfG

  2. Mahlzeit Horonock,

    da dieser Thread ja bereits ziemlich weit abgedriftet ist und IMHO die Nutzung von regulären Ausdrücken für Dein Problem eher Overkill ist, möchte ich Dir noch folgenden Vorschlag machen:

    Ich habe eine txt, bestehend aus 10 Zeichen.

    Du meinst, Du hast eine Textdatei, in der genau 10 Zeichen enthalten sind?

    Nun habe ich gleich der txt, 10 Bilder-Tags. Allerdings soll die src mit dem jeweiligen Zeichen der txt der Reihenfolge nach ersetzt werden.
    Kann mir da jemand einen Code für Basteln?

    Ich kann Dir ein paar Hinweise geben:

      
    // Hole Dir den Inhalt der Datei:  
    $content = [link:http://de.php.net/manual/en/function.file-get-contents.php@title=file_get_contents]('../Zahlen.txt');  
    // Beispielfall:  
    // 123.123.12  
      
    // Ersetze zu Anfang einmal den Punkt (den der kommt ja später auch in den <img>-Elementen vor  
    $content = [link:http://de.php.net/str-replace@title=str_replace]('.', '<img src="c.png">', $content);  
      
    // Ersetze jetzt alle Ziffern:  
    [link:http://de.php.net/manual/en/control-structures.for.php@title=for] ($i = 0; $i < 10; $i++) {  
      $content = str_replace($i, [link:http://de.php.net/manual/en/function.sprintf.php@title=sprintf]('<img src="%d.png">', $i), $content);  
    }  
      
    // In $content sollte jetzt (im Beispielfall) folgendes stehen:  
    // <img src="1.png"><img src="2.png"><img src="3.png"><img src="c.png"><img src="1.png"><img src="2.png"><img src="3.png"><img src="c.png"><img src="1.png"><img src="2.png">  
      
    // Zur Überprüfung solltest Du sie Dir mal ausgeben lassen:  
    echo $content;  
    
    

    Hoffe das hat jeder verstanden.. Auf dem Gebiet php bin ich noob, in HTML kenne ich mich gut aus.

    Dann beseitige ersteren Missstand - z.B. durch ein entsprechendes Tutorial.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|