Problem mit str_replace

DiDiJo

Erfahrenes Mitglied
hey leute,

ich hab ein Problem mit einem Aufruf der str_replace Funktion.

PHP:
	$farbe = formatColor($color);
	$x1 = array('ä','ö','ü','ß');
	$x2 = array('ae','oe','ue','ss');	
	$farbe = str_replace($x1,$x2,$farbe);

in $farbe steht am Anfang "grün". Am Ende sollte dort "gruen" stehen. Tut es aber net. Kann mir jemand erklären wo dort der Wurm drin steckt ?
 
Soweit kein Fehler zu sehen, mache mal ein
PHP:
echo str_replace($x1,$x2,$farbe);
und poste mal was dann ausgegeben wird, irgendwie habe ich die Vermutung das "$farbe" nochmal später ein Wert zugewiesen wird.
 
sooooooooo

hier is nochmal die ganze Funktiuon mit zusätzlicher Ausgabe:
PHP:
function formatScreenshot($pid,$format,$color) {
	$bild  = getProduktBilder($pid);
	$farbe = formatColor($color);
	echo '<strong>'.$farbe.'</strong><br/>';
	$x1 = array('ä','ö','ü','ß');
	$x2 = array('ae','oe','ue','ss');	
	$farbe = str_replace($x1,$x2,$farbe);	
	echo '---<br/>';
	echo str_replace($x1,$x2,$farbe).'<br/>';  
	echo '---<br/>';
	echo '<strong>'.$farbe.'</strong><br/>';
		 
	$pfad0 = "bild_".$farbe.'_'.$format.'_screens_500';
	$pfad1 = "bild_".$farbe.'_'.$format.'_screens_150';
	if (is_file(substr($bild[$pfad1],1))) return "<a href='$bild[$pfad0]' target='_blank'><img src='$bild[$pfad1]' alt='Screenshot' /></a>";
	else return "<img src='pics/no_pic_150.jpg' alt='Screenshot' />";	
}

und hier die Ausgabe:
HTML:
<strong>grün</strong><br>
---<br>
grün<br>
---<br>
<strong>grün</strong>

irgendwie seltsam oder ?!
 
PHP:
function formatScreenshot($pid,$format,$color) {
    $bild  = getProduktBilder($pid);
    $farbe = formatColor($color);
    echo '<strong>'.$farbe.'</strong><br/>';
    $x1 = array('ä','ö','ü','ß');
    $x2 = array('ae','oe','ue','ss');    
    $farbe = str_replace($x1,$x2,$farbe);    
    echo '---<br/>';
    echo '<strong>'.$farbe.'</strong><br/>';
         
    $pfad0 = "bild_".$farbe.'_'.$format.'_screens_500';
    $pfad1 = "bild_".$farbe.'_'.$format.'_screens_150';
    if (is_file(substr($bild[$pfad1],1))) return "<a href='$bild[$pfad0]' target='_blank'><img src='$bild[$pfad1]' alt='Screenshot' /></a>";
    else return "<img src='pics/no_pic_150.jpg' alt='Screenshot' />";    
}
 
ähhhhhmmmm ja .... das ist meine funktion ;) :)



p.s. die oben ausgeführte Ausgabe ist schon die reichtige ...

$farbe = str_replace($x1,$x2,$farbe);

die Zeile wurde auskommentiuert
 
Du musst die Zeichenkodierungen beachten, da genanntes nur funktioniert, wenn die Zeichenkodierung der Eingabe mit der der PHP-Datei übereinstimmt.
 
Zurück