foreach wertet $string aus Array nicht aus

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • foreach wertet $string aus Array nicht aus

    Ich habe ein Script, in welchem ich über eine preg_match_all -Funktion alle <img> -Tags aus einer Datei auslese, um diese in einem Javascript-Array weiter zu verwenden.
    Die Seite enthält aber auch $Variablen als Pfadangabe, z.B.
    PHP-Code:
    echo "<p><img src= \"$testimgdir/preload_testgrafik/bild-2.gif\">"
    Die Rückgabe des Arrays mit print_r() sieht so aus:
    Code:
    Array
    (
        [0] => Array
            (
                [0] => <img src="$testimgdir/preload_testgrafik/bild-2.gif" preload=1>
                [1] => <img src="$testimgdir/preload_testgrafik/bild-3.gif" preload=1>
            )
        [1] => Array
            (
                [0] => 
                [1] => 
            )
        [2] => Array
            (
                [0] => $testimgdir/preload_testgrafik/bild-2.gif
                [1] => $testimgdir/preload_testgrafik/bild-3.gif
            )
        [3] => Array
            (
                [0] => 1
                [1] => 1
            )
    )
    In der foreach()-Funktion werden die Variablen leider nicht ausgewertet, sondern im Javascript bleiben alleVariablen auch in der Form "$testimgdir/preload_testgrafik/bild-3.gif" erhalten.
    PHP-Code:
    foreach ($arr as $index => $inhalt) {
       
    $rel_url $arr[2][$index];
       
    $prel $arr[3][$index];
       if (
    $prel == "1") {
         if (
    $index 0) {
            
    $jsarr .= ", ";
         }
         
    $jsarr .= "\"$rel_url\"";
       }
    }
    echo 
    $jsarr?> 
    Die Ausgabe im an den Browser gelieferten Javascript-Quellcode sieht dann so aus:
    Code:
    <script>
    var pics = new Array("[B]$testimgdir[/B]/preload_testgrafik/bild-2.gif", "[B]$testimgdir[/B]/preload_testgrafik/bild-3.gif");
    anstatt das in $testimgdir gespeicherte URL-Verzeichnis auszugeben.
    Wie kann ich diesen String richtig auswerten?

  • #2
    ich wusste gar nicht, dass man php-variablen einfach so in JS mitnutzen kann

    Kommentar


    • #3
      Original geschrieben von graf
      ich wusste gar nicht, dass man php-variablen einfach so in JS mitnutzen kann
      Kann man eben nicht, das ist hier das Problem.

      @Guido: Da hilft wohl nur ein zusätzliches str_replace.
      mein Sport: mein Frühstück: meine Arbeit:

      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

      Kommentar


      • #4
        Also, die Variable "$testimgdir" ist nur eine Beispiel-Variable für eine. Es sollten ursprünglich auch andere Verzeichnisse geladen werden z.B. $assets = "http://yourdomain.de/assets"[/PHP]
        Meine "Hilfslösung" arbeitet jetzt wirklich mit str_replace(), jedoch erst einmal insoweit, dass diese Bilder alle ausschließlich nur im Ordner "/assets" abgelegt werden dürfen, wenn sie über Variablen im Code aufgerufen werden.
        Das ganze sieht jetzt so aus:
        PHP-Code:
        foreach ($arr as $index => $inhalt) {
           
        $rel_url $arr[2][$index];
           
        $prel $arr[3][$index];
           if (
        $prel == "1") {
             if (
        $index 0) {
                
        $jsarr .= ", ";
             }
             
        $jsarr .= "\"$rel_url\"";
           }
        }
        $jsarr str_replace('$assets'$assets$jsarr);
        echo 
        $jsarr?> 
        Gibt es auch eine Möglichkeit, dass dieser String $assets als in PHP-Code zu verarbeitender String erkannt wird, weil er mit $ beginnt?

        Kommentar

        Lädt...
        X