immer wieder reguläre Ausdrücke ...
heinetz
- php
0 heinetz0 RegExNooby0 heinetz
1 suit
Hallo Forum,
immer mal wieder versuche ich mir regulären Ausdrücken
zu arbeiten und sie gefallen mir immer besser, je mehr
mir bewusst wird, wie mächtig sie sind.
Ich parse XHTML-Content, den ich in der Variable $content
speichere. Ziel der Veranstaltung ist die Erkennung und
Bearbeitung von Links die einem bestimmten Muster entsprechen.
Und zwar suche ich nach Links, die den Paramter 'site_id'
enthalten. Das geht mit folgendem Muster:
$pattern = '/(<a.*href=")([^"]*site_id[^"]*)(".*>)/U';
In $1 steht der gesamte Link samt Paramtern. Ich möchte
aber versuchen, in $1 die request_uri und in $2 den
query_string stehen zu haben. Ich muss also nach einem
Fragezeichen nach href=" und vor site_id suchen.
Ich habe das hier probiert:
$pattern = '/(<a.*href=")([^"?]*site_id[^"]*)(".*>)/U';
... aber es haut irgendwie nicht hin. Ich machen, glaub ich
einen Denkfehler.
Kann mir da jemand einen Tipp geben ?
danke und
beste gruesse,
heinetz
Hallo Forum,
In $1 steht der gesamte Link samt Paramtern. Ich möchte
aber versuchen, in $1 die request_uri und in $2 den
query_string stehen zu haben. Ich muss also nach einem
Fragezeichen nach href=" und vor site_id suchen.
Das hier:
$pattern = '/(<a.*href=")(.*)(?.*site_id[^"]*)(".*>)/U';
... scheint zu funktionieren.
$2 ist der request_uri und in $3 steht der query_string.
Jetzt stehe ich aber vor einer neuen Aufgabe:
Mein query_string könnte so aussehen:
a) ?site_id=1
b) ?site_id=1&test1=1
c) ?test1=1&site_id=1
d) ?test1=1&site_id=1&test2=2
... und ich möchte den Parameter 'site_id' samt Wert aus dem query_string löschen. Der soll hinterher aber wohlgeform sein:
a) ?site_id=1 -> entfernen von '?site_id=1'
b) ?site_id=1&test1=1 -> entfernen von 'site_id=1&'
c) ?test1=1&site_id=1 -> entfernen von '&site_id=1'
d) ?test1=1&site_id=1&test2=2 -> entfernen von '&site_id=1'
Mir ist bisher noch nicht eingefallen, ob und wie an das
in einem regulären Ausdruck definieren kann.
vielleicht hat jemand einen Tipp
beste gruesse,
heinetz
Vieleicht hilft dir die Seite
http://txt2re.com/
weiter.
Scheint ein Klassetool zu sein,
auch wenn ich auf den ersten
Blick nicht verstanden habe,
wie's funktioniert.
Ich parse XHTML-Content [...]
Kann mir da jemand einen Tipp geben ?
Nutze einen XML-Parser.