# und replace in PHP

sd12

Legendäres Mitglied
Ich krieg es einfach nicht hin....

CODE $2=str_replace("#", "-", $1);


Er ersetzt die Raute einfach nicht... Ich hab schon alles Versucht... Ihr seid meine letzte Hoffnung.

Ich hab das Gefühl, dass es am Windows Server liegt.

Den diese hier finktioniert auch nicht:
Code:
$1="huhu+haha+hoho";
$regs=explode("+", $1);[QUOTE]

Wenn ich aber folgenden Code nehmen, dann klappt es:
$regs=explode([B]" "[/B], $1);
 
kann es vielleicht helfen anstatt " ' zu benutzen? einfach mal probieren, manchmal hilfts!
 
Ich nutze zwar kein PHP.

Aber so auf Verdacht: PHP hat doch Probleme mit Unicode. Wenn die Datei bsp. als Unicode (UTF-16) gespeichert ist (Öffnen per Notepad, dann Speichern unter und gucken, was ausgewählt ist), dann müßte man zwei Zeichen angeben.

Sprich: $1 ist eine Ein-Byte-Zeichenfolge, die Datei ist als UTF-16 gespeichert, "#" wird intern als zwei Zeichen dargestellt - und damit in der Ein-Byte-Zeichenfolge nicht gefunden.

Hier gab es vor einiger Zeit mal ein ähnliches Problem mit für mich gruseligen Einsichten in die Grenzen von PHP.
 
QUOTE (Siegfried_D @ Mi 4.07.2007, 22:46) kann es vielleicht helfen anstatt " ' zu benutzen? einfach mal probieren, manchmal hilfts!

ne, hilft leider auch nix...
 
QUOTE (jAuer @ Mi 4.07.2007, 22:47) Ich nutze zwar kein PHP.

Aber so auf Verdacht: PHP hat doch Probleme mit Unicode. Wenn die Datei bsp. als Unicode (UTF-16) gespeichert ist (Öffnen per Notepad, dann Speichern unter und gucken, was ausgewählt ist), dann müßte man zwei Zeichen angeben.

Sprich: $1 ist eine Ein-Byte-Zeichenfolge, die Datei ist als UTF-16 gespeichert, "#" wird intern als zwei Zeichen dargestellt - und damit in der Ein-Byte-Zeichenfolge nicht gefunden.

Hier gab es vor einiger Zeit mal ein ähnliches Problem mit für mich gruseligen Einsichten in die Grenzen von PHP.

Hab das ganz Programm durchgespielt...

Nützt alles auch nix...
16 DECIMAL VALUE : : : : : : 35
17 UTF-8 HEX VALUE : : : : : 0x23
18 UTF-16 HEX VALUE: : : : : 0x0023
19 UTF-32 HEX VALUE: : : : : 0x00000023
20 XHTML : : : : : : : : : : &#35
 
ich hab das mit Apache getestet (Linux und Windows) was beides geklappt hat.
solltest du tatsächlich $1 benutzen liegt es sicher daran!

sonst an deinem "Windows Server"... DAS wäre für mich ein gruseliger Einblick in den Windows Server.
biggrin.gif


CODE
<?php

$y = "abcdefg # abcdefg";


$x=str_replace("#", "-", $y);


$a="huhu+haha+hoho";
$regs=explode("+", $a);

print_r($regs);

echo $x;

?>

 
QUOTE (manuel @ Do 5.07.2007, 07:40) ich hab das mit Apache getestet (Linux und Windows) was beides geklappt hat.
solltest du tatsächlich $1 benutzen liegt es sicher daran!

sonst an deinem "Windows Server"... DAS wäre für mich ein gruseliger Einblick in den Windows Server.
biggrin.gif



CODE
<?php

$y = "abcdefg # abcdefg";


$x=str_replace("#", "-", $y);


$a="huhu+haha+hoho";
$regs=explode("+", $a);

print_r($regs);

echo $x;

?>



Fragt mich jetzt nicht, warum es nun funktioniert!

Ich könnte schwören, dass ich es GANAU SO gemacht habe.

CODE $x=str_replace("#", "-", $y);


Was solls, es läuft. Vielen Dank.
 
Zurück
Oben