preg_replace()-Funktion gesucht
gondor
- php
Hallo, wie würde eine preg_replace()-Funktion aussehen, wenn ich folgendes ersetzen möchte:
style="border: 1px;"
" in "
style=\"border: 1px;\"
\" in "
style=\"border: 1px;\"
\" in "
style=\\"border: 1px;\\"
\\" in "
etc.
Vielen Dank für schnelle Info,
gondor(..)
Hallo, wie würde eine preg_replace()-Funktion aussehen, wenn ich folgendes ersetzen möchte:
Probier mal
preg_replace("/\+/g", '"', $string);
~JJ
preg_replace("/\+/g", '"', $string);
Da fehlte noch die double quotes:
preg_replace("/\+?"/g", '"', $string);
preg_replace("/\+/g", '"', 'style=\\\"border: 1px solid;\\\"')
kommt NULL zurück.
Andere Lösung?
gondor(..)
gudn tach!
preg_replace("/\+/g", '"', $string);
nee, und auch der vorschlag "/\+?"/g" ist nicht richtig.
in perl waere es schlicht
s/\+"/"/g;
in php dagegen muss man immer noch das zusaetzliche parsen des strings beruecksichtigen:
preg_replace('/\\+"/', '"', $foo);
oder halt ueberfluessiger weise:
preg_replace("/\\+"/", """, $foo);
warum das ganze: erst wird der string geparst, dann wird der resultierende regexp geparst; d.h. es muss ggf. zwei mal escaped werden.
(es geht auch mit nur drei backslashes, aber das sollte man wirklich nur verwenden, wenn man genau weiss, man tut)
prost
seth
Hi,
preg_replace('/\\+"/', '"', $foo);
dies greift nicht beim ersten geforderten Fall:
| " in "
Cheatah
gudn tach
preg_replace('/\\+"/', '"', $foo);
dies greift nicht beim ersten geforderten Fall:
| " in "
"greift nicht" ist ungefaehr so informativ wie "funktioniert nicht". ;-)
was genau meinst du?
<?php
$str = 'style=\"border: 1px;\"'; // same as 'style=\\"border: 1px;\\"'
echo($str."\n"); // prints style=\"border: 1px;\"
$str = preg_replace('/\\\\+"/', '"', $str);
echo($str."\n"); // prints style="border: 1px;"
?>
prost
seth
Hi,
\\" in "
wie entstehen denn diese multiplen ""? Vielleicht hilft Dir schon der gezielte Einsatz von stripslashes weiter. Ansonsten, reicht Dir denn ein einfaches str_replace("\", "", $str) nicht? Das ist in der Regel schneller als ein regulärer Ausdruck.
Gruesse, Joachim