Problem mit str_replace

xtratz

Gesperrt
Hallo Leute,

kann mir jemand sagen warum das nicht geht?.
SOllte doch eigentlich oder nicht?

PHP:
<?
 $_tpl = 'wäre ich ein Holzfäller, so müßte ich Bäume fällen.';
      
   $array_1 = array("ä","ü","ß");
   $array_2 = array("ae","ue","ss");
   

  for($x=0;$x<3;$x++){
  $_out = str_replace($array_1[$x],$array_2[$x],$_tpl);
}

echo $_out;
?>

Es wird nur der letzte Wert ersetzt.
Also ß mit ss.

Ich weis nimma weiter.
 
Hallo,

du ersetzt in jedem deiner drei Schleifendurchläufe die Variable $out, die du am Ende ausgibst. Also bleibt am Ende nur die letzte Ersetzung bestehen (die von sz nach ss)

So bleibt es erhalten (ungetestet)

PHP:
$_out = _tpl;
for($x=0;$x<3;$x++){
  $_out = str_replace($array_1[$x],$array_2[$x],$_out);
}
 
Du brauchst übrigens keine Schleife, [phpf]str_replace[/phpf] akzeptiert auch Arrays seit PHP 4.0.5.

Weiterhin würde ich eher [phpf]htmlspecialchars[/phpf] verwenden oder hat es einen besonderen Grund warum du es umwandeln willst?

PHP:
<?php
 $_tpl = 'wäre ich ein Holzfäller, so müßte ich Bäume fällen.';
      
   $array_1 = array("ä","ü","ß");
   $array_2 = array("ae","ue","ss");
   

  $_out = str_replace($array_1,$array_2,$_tpl);

echo $_out;
?>

Funktioniert bei mir übrigens ohne Probleme.
 
Dank euch ;-)

Stimmt ich brauche keine Schleife mehr.
Der Inhalt war nur ein Beispiel.

So gehts nun:

PHP:
   $_tpl = 'wäre ich ein Holzfäller, so müßte ich Bäume fällen.';
      
   $array_1 = array("ä","ü","ß");
   $array_2 = array("ae","ue","ss");
   
   $_out = str_replace($array_1,$array_2,$_tpl);

Danke und Bye
 
Zurück