Ich erinnere mich, dass ich das schon einmal gemacht habe, kann aber den Code nicht finden. Ich benutze str_replace, um ein Zeichen wie folgt zu ersetzen: str_replace(':', ' ', $string);
aber ich möchte alle folgenden Zeichen ersetzen \/:*?"<>|
, ohne für jedes ein str_replace zu machen.
php
string
str-replace
gleichalt
quelle
quelle
Antworten:
str_replace()
kann ein Array nehmen, also könnten Sie tun:Alternativ können Sie verwenden
preg_replace()
:quelle
str_replace()
gegenüberpreg_replace()
(oder umgekehrt) im Fall des OP?'~[\\+><-]~'
(beachten Sie, wo die-
ist). Der Strich (-
) ist ein Regex-Metazeichen, daher muss er maskiert oder strategisch in die Zeichenklasse eingefügt werden (alles darin[]
). Siehe diese Antwort: stackoverflow.com/a/7604888/396458So was:
Oder in modernem PHP (ab 5.4) etwas weniger wortreich:
quelle
Wenn Sie beispielsweise search1 durch replace1 und search2 durch replace2 ersetzen möchten, funktioniert der folgende Code:
quelle
quelle
Wenn Sie nur einzelne Zeichen ersetzen, sollten Sie verwenden
strtr()
quelle
Sie könnten preg_replace () verwenden . Das folgende Beispiel kann mit der Befehlszeile PHP ausgeführt werden:
Ausgabe:
quelle
Ich hatte eine Situation, in der ich die HTML-Tags durch zwei verschiedene Ersetzungsergebnisse ersetzen musste.
Ergebnis
"Sprinkler- und Brandschutzinstallateur", "Steamfitter", "Terrazzo-, Fliesen- und Marmorsetzer",
quelle
Ich denke, Sie kümmern sich darum:
quelle
In meinem Anwendungsfall habe ich einige Felder in einem HTML-Dokument parametrisiert. Sobald ich diese Felder geladen habe, stimme ich mit der Methode str_replace überein und ersetze sie.
quelle