str_replace Problem

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

  • str_replace Problem

    Hallo. Ich hab da ein Problem was mir einfach nicht einleuchten will. Und zwar würd mich interessieren worin der Unterschied zwischen den beiden Versionen besteht:

    PHP-Code:
    $colors=array(
     
    "`r"=>"</span><span style=\"color:#FF0000;\">",
     
    "`g"=>"</span><span style=\"color:#00FF00;\">",
     
    "`l"=>"</span><span style=\"color:#FFFF00;\">",
     
    "`b"=>"</span><span style=\"color:#0000FF;\">");
    $key=array_keys($colors);
    $val=array_values($colors);

    $str="`rH`ga`bl`ll`ro `gW`be`ll`rt";
    echo 
    str_replace($key,$val,$str); 
    Das funktioniert schon mal, allerings is es nicht nötig den ganzen style code in ein array zu stopfen wenn mans gleich im str_replace zusammensetzen könnte. Also gut...


    PHP-Code:
    $colors=array(
     
    "`r"=>"FF0000",
     
    "`g"=>"00FF00",
     
    "`l"=>"FFFF00",
     
    "`b"=>"0000FF");
    $key=array_keys($colors);
    $val=array_values($colors);
    $str="`rH`ga`bl`ll`ro `gW`be`ll`rt";
    echo 
    str_replace($key,"</span><span style=\"color:#".$val.";\">",$str); 
    php sieht das nicht so und gibt mir satt den erwarteten farbcodes nur "Array" zurück ( <span style="color:#Array;"> )

    Kann mir bitte wer sagen warum das so ist ?

  • #2
    Die Funktion denkt du kommst mit einem String. Dann steht im String noch Array-Daten. Deswegen "Array" als Ausgabe.

    Wenn du es mit Arrays machen willst, musst du 'replace' eben schon mit dem HTML vorbestücken.

    Zuletzt geändert von Denny; 24.07.2008, 09:35.

    Kommentar


    • #3
      dummes replace ^^

      danke für die antwort.

      Kommentar


      • #4
        PHP-Code:
        $colors = array(
            
        '`r' => 'FF0000',
            
        '`g' => '00FF00',
            
        '`l' => 'FFFF00',
            
        '`b' => '0000FF'
        );

        foreach (
        $colors as &$color)
            
        $color '</span><span style="color: #' $color ';">';

        $str '`rH`ga`bl`ll`ro `gW`be`ll`rt';
        echo 
        str_replace(array_keys($color), array_values($color), $str); 

        Kommentar

        Lädt...
        X