PHP | Reguläre Ausdrücke - Suchen und Ersetzen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausprobieren
beispiel
code
darstellen
ersetzen
ersten gefundenen gebilde
frage
funktion
hilfe
match
muster
schlag
stunden
symbol
testen
text
verwenden
verzweifeln
voll erfasst danke
zeug
-
Hey Leute,
schlage mich grade mit den \"Regulären Ausdrücken\" rum und bin etwas am verzweifeln.
Ich bin noch nicht sonderlich fit im Umgang mit den ganzen [/=\"!§!\"?
Ich bin nichtmals sicher, ob es überhaupt möglich ist deswegen frage ich lieber
bevor ich mir noch weitere Stunden um die Ohren hau ^^
Folgendes:
Ich brauche ein Suchmuster zum Ersetzen das
aus in einer Zeichenkette Teile findet die zwischen \"<code></code>\" geschrieben sind ... und dazwischen sollen alle \"<\" und \">\" durch \"<\" und \">\" ersetzt werden.
Beispiel:
Von \"<code> <b>Text</b> </code>\" Zu: \"<code> <b> Text </b> </code>\"
Ich hab jetzt zwar ein Suchmuster zusammen was im Prinzip so funktioniert aber nur für eins der beiden Symbole. Außerdem kommt noch dazu, dass < oder > nur einmal ersetzt wird.
Ich denke ich zeige euch einfach mal mein zusammengebasteltes Muster ^^ und hoffe darauf dass einer es durchblickt und weiß wie ich das hinbekomme was ich erreichen will.
preg_replace(\"!<code>(.*) < (.*)</code>!\",\"<code>$1 > $2</code>\",$str);
Gruß
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also wenn ich dich richtig verstanden hab, sollen alle < und > zu & lt; und & gt; werden, aber nur zwischen <code> und </code>. Alles andere soll unverändert bleiben? Ich würde dafür preg_replace_callback() verwenden. Hier mal ein Beispiel, wie ich mir das vorstellen könnte:
<? $str=preg_replace_callback(\'!<code>(.*)</code>!Ui\',\'replace_function\',$str); function replace_funktion($match) { $match[1]=str_replace(\'<\',\'& lt;\',$match[1]); $match[1]=str_replace(\'>\',\'& gt;\',$match[1]); return $match[1]; } ?>
Ich hab bei & lt; ein Leerzeichen eingefügt, damit man sieht was du meinst. -
Hey,
das ging ja fix ^^
Danke schön .. ich werd mir das jetzt mal genauer anschauen, weil auf den ersten Blick versteh ichs noch nicht so ganz ^^ und mal testen.
Vom Sinn her hast dus auf jeden Fall voll erfasst.
Danke dir ... ^^
Gruß
EDIT:
Soo also funktioniert einwandfrei ... funktion muss allerdings in function geändert werden ;)
Vielen Dank =)
Ich hab allerdings noch eine Frage... und zwar was bewirkt das \"U\" hinterm Muster ... auf der Seite wo ich mir das Zeug zusammengelesen habe gabs nur \"i,s,m\"
Gruß
Beitrag geändert: 15.4.2008 19:40:10 von xsnifferdogx
Beitrag geändert: 15.4.2008 19:52:23 von xsnifferdogx -
Ich weiß jetzt nicht :)
Man kann doch \'<\', \'>\', \'\'\', \'\"\' mit Hilfe von htmlspecialchars() ersetzen ... -
nikic schrieb:
Ich weiß jetzt nicht :)
Man kann doch \\\'<\\\', \\\'>\\\', \\\'\\\'\\\', \\\'\\\'\\\' mit Hilfe von htmlspecialchars() ersetzen ...
Mhh ja das schon, aber dann ersetzt man ja alle Zeichen im String.
Bei mir ists aber wichtig dass alles außerhalb von <code> </code> normal wie HTML behandelt wird ;)
Ich will damit halt so änlich wie hier mit dem BB Code - HTML - Code darstellen können.
Gruß -
funktion muss allerdings in function geändert werden ;)
Upps, stimmt natürlich.
Ich hab allerdings noch eine Frage... und zwar was bewirkt das \"U\" hinterm Muster ... auf der Seite wo ich mir das Zeug zusammengelesen habe gabs nur \"i,s,m\"
http://de.php.net/manual/de/reference.pcre.pattern.modifiers.php
Den Modifier s könnte man sicher auch noch verwenden, musst du einfach mal ausprobieren was besser für deine Bedürfnisse passt. Da mach ich eigentlich auch immer trial and error. Das U bewirkt, dass die Funktion nicht nach dem ersten gefundenen <code></code>-Gebilde aufhört (kurz gesagt). Mnachmal ist das auch gewünscht, aber meistens ist U ganz sinnvoll. -
Ah .. perfekt ^^
Danke ... ich wusste nicht dass die Dinger Modifikatoren heißen deswegen war meine Suche wohl erfolglos ^^
Okay .. dann hat sich alles geklärt ..
Vielen Dank nochmal -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage