Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
str_replace Problem [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
str_replace Problem


 
ibeg
24-07-2008, 07:39 
 
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:


$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...



$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 ?

 
Denny
24-07-2008, 09:30 
 
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.

 
ibeg
24-07-2008, 09:51 
 
dummes replace ^^

danke für die antwort.

 
h3ll
24-07-2008, 09:57 
 
$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);

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:09 Uhr.