phpbar.de logo

Mailinglisten-Archive

[php] Doch noch mal Regex-Frage - preg match all()

[php] Doch noch mal Regex-Frage - preg match all()

Tim Hildebrandt TConnect at gmx.net
Son Aug 28 19:28:36 CEST 2005


Hallo Liste,

ich hatte diesen Thread eigentlich schon abgeschrieben, aber irgendwie bin
ich doch noch mal über ein Problem gestolpert, das mich nicht losläßt.

Also ich hatte ja eine Anwendung, bei der ein Benutzer einen Seitenindex
durchblättern können soll. Dabei gibt es natürlich in der Menge des Leyouts
auch irgendwo die (noch zu gestaltenden) Links "Zur ersten Seite" "Vorherige
Seite" "Nächste Seite" und "Letzte Seite".

Ich wollte das so machen, dass ich die jeweiligen Hyperlinks in einem
spezifischen Format layouten lassen wollte:

<a href="href:last" class="class:meineklasse-.status">Letzte Seite</a>


Jetzt habe ich mir über preg_match_all() mit folgender Pattern:

"|<a[^>].*href:([a-z]+).*class:([-a-z0-9_]+\\.status).*>(.*)</a>|i";


die entsprechenden Werte für die Zeichenketten

last
.status
Letzte Seite

raussuchen lassen, was auch prima klappt.

Ich kann also je nach Typ und tatsächlicher Seite den Link neu zusammenbauen
und formatieren, oder eben durch z.B. <span> ersetzen, wenn der Kunde sich
bereits auf der letzten Seite befindet und das Konstrukt nicht mehr
anklickbar sein soll.

Jetzt gibt es aber einen Spezialfall, der nicht klappen will:

<a href="href:last" class="class:meineklasse-.status">>></a>

Wenn also im Link-Tag die Zeichen >> verankert sind, matcht der Ausdruck nur
die zweite > und eben *nicht* >>. Warum? Kann mir da jemand helfen?

Ich möchte eigentlich nur die Regel:

<a ..>(irgendwelche Zeichen)</a>


Kann mir bei diesem Teil des Pattern noch mal jemand helfen?


Danke
Grüße Tim


php::bar PHP Wiki   -   Listenarchive