Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Fehler in RExpr ....

Hallo ersteinmal,

ich habe mit den RE´s derzeitig Probleme.

Derzeitiger Stand: Ich habe einen Text mit speziellen HTML-Tags, die ich selber definiert habe.

z.B. <externlink "http://www.heise.de/xyz">Link auf einen Newsdienst</externlink>
z.B. <externlink "http://www.heise.de/xyz" 'Linkverweis auf heise.de'>Link auf einen Newsdienst</externlink>
1.Attribut im XML-Tag "externlink" ist der Link
2.Attribut stellt einen optionalen Parameter "Linktitel" (<A-"Title">Tag)

Diese sollen später von einer RExpr im Text ausfindig gemacht werden und anschliessend richtig übersetzt werden, z.B. in ein A-TAG.


Meine (fehlerhafte?) PHP-Anweisung bzw. RE:

Code:                   In Zwischenablage kopieren (nur IE)
1">

+ Das Problem:
Wenn nun der folgende Text als Eingabe eingefügt wird:

Code:                   In Zwischenablage kopieren (nur IE)
2">

...dann kommt als Ergebnis der folgende Teil heraus:
Code:                   In Zwischenablage kopieren (nur IE)
3">

Kann mir einer eine modifizierte RE angeben, die einmal
Code:                   In Zwischenablage kopieren (nur IE)
4">

und ein anderes Mal
Code:                   In Zwischenablage kopieren (nur IE)
5">

rauskommt ?

Danke für jeden Tip.
Hier gehts zum Orginal Eintrag "Fehler in RExpr ...." im Forum

Antworten

So einfach ist das nicht. Ich frage mich, was an der Syntax <externlink ...> besser sein soll, als direkt <a href="..."> zu schreiben? Eine kryptische Form eines eigentlich einfachen HTML-Konstrukts.

Die Ersetzung ist zudem nicht ganz trivial, da es zu unterscheiden gilt, ob innerhalb des <externlink>-TAGs auch noch ein Titel spezifiert wurde. Da braucht man schon mehr als "nur" eine regulare Expression. Zudem ist Dein Versuch völlig unzureichend, weil mit dem Pattern (.*) viel zu viel "weggefressen" wird. Eine funktionierende Version (mit erweitertem Check, ob beim Verweis auch ein http:// spezifiziert wurde) sähe beispielsweise so aus:

Code:                   In Zwischenablage kopieren (nur IE)
6">

Ich habe das Beispiel erweitert im 2. Link, wo hier dann auch ein Titel angegeben wird. Aber wie gesagt, einen Sinn entdecke ich darin nicht.


2.

Danke für Deinen Lösungsansatz. Hat super funktioniert ,-) Ich hatte - aufgrund meiner Unwissenheit was Callback-Funktionen angeht - anfangs nur Probleme gehabt die Callback-Funktion aus einer Klasse bzw. aus einem Objekt heraus aufzurufen.

Grund für die Implementierung:
Ich wollte für eine Typo3-Implementierung eigenes (selbstfestgelegte) Tags einführen / implementieren, deren Verhalten auf von meinen selbstgeschriebenen (vorhandenen) Extensions besser kontrolliert werden kann. Ich weiß, dass es auch mit Typo3 - Skript auch möglichkeiten gibt, neue Tags zu erstellen und hierfür existiert im Kickstarter auch eine Möglichkeit diese als Hüllklasse zu erstellen. Es ging mir hier ja nicht nur um eigene "LINK" oder "EXTERNLINK"-Tags, sondern später u.U. auch beliebige Kürzel einzuführen, die vom Benutzer in Ihrer Syntax selbst festgelegt werden können.

Danke für die Antwort und vorallem auch für Deine Zeit Dich des Problems angenommen zu haben.

Schönen Gruß
Christian


Hier gehts zum Orginal Eintrag "Fehler in RExpr ...." im Forum
 
phpforum.de | Impressum