Top
PHP Tutorial – Schritt 15: preg_replace im Einsatz – RonnyDee´s Blog
fade
2482
post-template-default,single,single-post,postid-2482,single-format-standard,eltd-core-1.1.1,flow child-child-ver-1.0.0,flow-ver-1.3.7,eltd-smooth-scroll,eltd-smooth-page-transitions,ajax,eltd-blog-installed,page-template-blog-standard,eltd-header-standard,eltd-fixed-on-scroll,eltd-default-mobile-header,eltd-sticky-up-mobile-header,eltd-dropdown-default,wpb-js-composer js-comp-ver-5.2.1,vc_responsive

PHP Tutorial – Schritt 15: preg_replace im Einsatz

So, nachdem wir uns wie bereits erwähnt durch die RegEx Ausdrücke gequält haben, sehen wir uns den Befehl preg_replace() mal in praktischen Beispielen an.

|

Aufbau von preg_replace

Die Funktion preg_replace() durchsucht einen String nach Übereinstimmungen mit dem Suchmuster und ersetzt die gefundenen Stellen durch den angegebenen Ersatzstring. Der Aufbau dieser Funktion ist folgender:

|

Was können wir da nun genau angeben:

  • Suchmuster – Der jeweilige RegEx Code den wir in den letzten Beiträgen gelernt haben
  • Ersatzmuster – Die neue Zeichenfolge die angewendet werden soll
  • Suchstring – Der String/Array das mit dem Suchmuster & Erstazmuster konfrontiert werden soll
  • Limit – Optional, die maximale Anzahl an Ersetzungen
  • Anzahl – Optional, enthält nach der Ersetzung die Anzahl der ersetzten Suchmuster

|

Einfaches Ersetzen eines Wortes

Wir wollen im ersten Beispiel in einem Satz einfach ein Wort austauschen. Der Logik nach würden wir wohl folgenden Code annehmen:

Das funktioniert allerdings nicht, da der Befehl „preg_replace()“ beim Suchmuster mit einem nicht alphanumerischen oder mit einem Maskierungszeichen beginnen muss.

|

Richtig wäre also:

|

Limit

Versuchen wir gleich die neue Option „Limit“, also die maximale Anzahl von Ersetzung:

dazu machen wir aus unserer Variable $altertext das

|

Und aus dem preg_replace() Befehl das

|

Der ganze neue Befehl sieht demzufolge so aus:

|

Und unter http://phpfiddle.org/ kannst du nun live sehen was die Ziffer „3“ verursacht:

preg_replace_01

 

|

Anzahl

Und der Vollständigkeithalber nehmen wir auch gleich die Option „Anzahl“ dazu, die uns ja in einer Variable speichert, wie oft das Suchmuster gefunden bzw. ersetzt wurde:

Dazu fügen wir VOR dem Befehl preg_replace() eine neue Variable mit dem Anfangswert „0“ (Null) hinzu. Diese  benötigen wir später um die Anzahl an Ersetzungen auch auszugeben:

|

Die wir am Ende auch ausgeben:

|

Der „neue“ preg_replace()“ Befehl lautet nun

|

Die Option „-1“ bedeutet in diesem Fall eine unbeschränkte Anzahl an Ersetzungen (also nicht wie vorher maximal 3). Der gesamte Code:

|

Du erhälst nun als Ergebnis, dass im gesamten Code das Wort „toll“ gegen die Wörter „zum vergessen“ ausgetauscht und die Anzahl von „4“ ausgegeben wurde.

|

Praktisches Beispiel „doppelte Leerzeichen“

Ein praktisches Beispiel ist dabei einen Text

  • auf doppelte Leerzeichen zu prüfen,
  • dies gleich auf ein Leerzeichen zu korrigieren und
  • eine Statusmeldung auszugeben

|

Der Code dafür würde dabei folgendermaßen aussehen:

|

Es stehen dir jetzt unzählige Möglichkeiten mit diesem Wissen zur Verfügung und wir werden den Befehl preg_replace() auch später noch öfters benötigen und erweitern. In diesem Artikel belasse ich es jetzt jedoch einmal dabei, da wir noch andere Befehle benötigen um die Stärke dieses Befehls so richtig ausschöpfen können.

Die nächste Thematik die wir nun behandeln widmet sich den Arrays: Schritt 16: Arrays (und Schleifen)

|

photo credit: r.g-s via photopin cc

No Comments

Post a Comment