|
Erstellt ein Array
Zählt die Elemente einer Variable oder Attribute eines Objekts
Fügt vor allen Zeilenumbrüchen eines Strings HTML-
Sucht und ersetzt einen regulären Ausdruck
Runden eines Wertes |
Tutorials - RegExpressions - Ersetzen - An Funktion sendenTutorials - RegExpressionsErsetzen: An Funktion senden
Man muss aber nicht immer direkt ersetzen, mit einem weiteren kleinen Parameter kann man das Gefundene auch an eine PHP-Funktion senden. Z.B. hier sinnvoll: Umrechnen von DM (hachja... Nostalgie...) in Euro... Der Parameter hierzu ist einfach ein "e": <?php $Text = "Mein Fernseher kostete damals knapp 1200 DM, meine Gitarre knapp 1600DM"; echo preg_replace("'(\d+(,\d+)?)\s*DM'e", "calculate('\\1');", $Text); function calculate($dm) { return round($dm / 1.95583, 2) . " €"; } ?> -- Mindestens eine Ziffer (0-9): -- \d+ -- Dann Komma und weitere Ziffern, aber beides muss nicht (muss nicht = "?") -- \d+(,\d)? -- Kein oder so viele Sonderzeichen (\s) wie es beliebt: -- \d+(,\d)?\s* -- Die Buchstaben DM -- \d+(,\d)?\s*DM -- Klammer um den "Zahlausdruck", damit nur dieser an die Funktion gesendet werden kann: -- (\d+(,\d)?)\s* Und schon funzt das :) Der Parameter "e" muss aber auch nicht allein stehen, er kann auch in Verbindung mit "i" dastehen: <?php $Text = "Mein Fernseher kostete damals knapp 1200 dm, meine Gitarre knapp 1600DM"; echo preg_replace("'(\d+(,\d+)?)\s*DM'ie", "calculate('\\1');", $Text); function calculate($dm) { return round($dm / 1.95583, 2) . " €"; } ?> Was so auch möglich ist, ist das Speichern von gefundenen Worten, um sie später wieder zu verwenden: <?php $Text = "Der Maikäfer gehört zu den Blatthornkäfern. Er ist 2-3 cm lang. Er hat 6 Beine, zwei dicke Flügeldecken und zwei dünne Flügel, 2 Augen und 2 Fühler, die vorne wie ein Kamm gefiedert sind. An den Fiedern der Fühler kann man Männchen und Weibchen unterscheiden: Die männlichen Käfer haben 7 lange Fiederchen am Fühler, während die weiblichen nur 6 kleine Fiederblättchen tragen. Maikäfer sind Pflanzenfresser, die sich hauptsächlich von Blättern der Laubbäume ernähren. Früher traten sie in großen Massen auf und haben ganze Bäume kahlgefressen."; $Found = array(); /* Ein Array für die gefundenen Wörter */ echo nl2br(preg_replace("'(\w*)(käfer)(\w*)'ie", "pregHelperFunction('\\0');", $Text)); echo "<br /> <br /> es wurden " . count($Found) . " Worte gefunden:<br />\n"; foreach($Found as $word) { echo "<b>$word</b><br />\n"; } function pregHelperFunction($found) { global $Found; /* $Found ist nun auch in der Funktion verfügbar */ $Found[ ] = $found; /* das gefundene Wort wird dem Array hinzugefügt */ return $found; /* $found wird unverändert zurückgegeben */ } ?> <?php $Text = "Der Maikäfer gehört zu den Blatthornkäfern. Er ist 2-3 cm lang. Er hat 6 Beine, zwei dicke Flügeldecken und zwei dünne Flügel, 2 Augen und 2 Fühler, die vorne wie ein Kamm gefiedert sind. An den Fiedern der Fühler kann man Männchen und Weibchen unterscheiden: Die männlichen Käfer haben 7 lange Fiederchen am Fühler, während die weiblichen nur 6 kleine Fiederblättchen tragen. Maikäfer sind Pflanzenfresser, die sich hauptsächlich von Blättern der Laubbäume ernähren. Früher traten sie in großen Massen auf und haben ganze Bäume kahlgefressen."; $found = 0; echo nl2br(preg_replace("'(\w*)(käfer)(\w*)'ie", "pregHelperFunction('\\0');", $Text)); function pregHelperFunction($word) { global $found; /* $found ist nun auch in der Funktion verfügbar */ $found++; /* $found wird um eins erhöht */ return "$word <b>( $found )</b>"; } ?> |