nein, du musst nich alle <a> umwandeln... sondern das preg_match() auf deine [AURL] tags umbauen....
Die Ladezeit müsste man austesten, da geb ich dir allerdings recht, dass ein paar msec. länger dauern wird.
Das problem, bei einer einzigen preg_replace() Anweisung, die alles zusammen kann ist, dass es auf mächtig viele eventualitäten prüfen muss.
z.B. wenn jemand ein [AURL] tag benutzt, und nach dem "]" eben nicht sofort weiterschreibt, sondern irgendein Steuerzeichen angibt, stehst dir mit (?<!\S) schon auf'm Schlauch.
Sicherer wär's, wenn du tatsächlich die inhalte der Tags, die nicht in die Konvertierung einbezogen werden sollen, erstmal aus dem Text extrahierst, dann umwandelst und danach wieder einfügst.
Dann kann in dem Tag alles mögliche stehen, und du brauchst dir keinen Kopf drum zu machen.
nein, du musst nich alle <a> umwandeln... sondern das preg_match() auf deine [AURL] tags umbauen....
Die Ladezeit müsste man austesten, da geb ich dir allerdings recht, dass ein paar msec. länger dauern wird.
Das problem, bei einer einzigen preg_replace() Anweisung, die alles zusammen kann ist, dass es auf mächtig viele eventualitäten prüfen muss.
z.B. wenn jemand ein [AURL] tag benutzt, und nach dem "]" eben nicht sofort weiterschreibt, sondern irgendein Steuerzeichen angibt, stehst dir mit (?<!\S) schon auf'm Schlauch.
Sicherer wär's, wenn du tatsächlich die inhalte der Tags, die nicht in die Konvertierung einbezogen werden sollen, erstmal aus dem Text extrahierst, dann umwandelst und danach wieder einfügst.
Dann kann in dem Tag alles mögliche stehen, und du brauchst dir keinen Kopf drum zu machen.
Hallo
Danke für deinen Tipp.
Wie würde dies denn aussehen? Das beste wäre schon gewesen direkt so aber wenns anders auch geht warum nicht.
Ich denke ich weiss ungefähr wie du meinst. Also das man die strings [AURL=...]IRGENDEIN SATZ BAU[/AURL] rausfiltern würde und dann wenn ich den ersatz hinter mir habe dann dies wieder einzufügen. Nur wie mache ich dies am besten?
da es sich so anhört, als wenn hier einige pattern experten schreiben,
möchte ich mal ganz dezent auf eine ähnliche frage hinweisen, die ich im
ASP bereich dieses forums gepostet hab! es geht mir ja auch nur um ein
pattern + backreference, also ist die sprache egal
Original geschrieben von ankh so, wie's da oben im code steht...
mit 'nem preg_match_all() alles in'n array ziehen.
dann, jedes element, das du dir gezogen hast, mit'nem Platzhalter versehen...
Deine weiteren Umwandlungen durchführen...
Die Platzhalter wieder durch die Arrayeinträge ersetzen
feddich...
Guten Abend
Ich habe es nun geschaft einen preg_match_all zu basteln der mir diese [autl=..... geschichte ausliest. Jedoch wie bekomme ich bekomme ich nun eine variabel mit dem string ohne diese [aurl.... teile, und wie kann ich dann wenn alles fertig ist die fehlenden teile denn wieder einfügen?
Nach dem das es wohl nicht möglich ist etwas auszuschliessen aus preg_replace (nehme ich mal an da du nicht mehr geantwortet hast), fand ich den tip der hier kam als einleuchtend mit dem entfernen und nachher wieder einfügen.
Wenn ich dein PHP Code ansehe verstehe ich nicht was er bewirken soll.
Ich möchte ja kein String in die aurl einfügen oder sonstiges. Ich möchte alle [AURL=...]...[/AURL] aus einem text haben, um dann über eine oder mehrere funktionen weiter verarbeiten zu können, und am schluss dann wieder diese genau so wie sie waren an der stelle einzufügen. Daher habe ich die Variante mit den Platzhaltenr einleuchtend und gut gefunden. Wenn es jedoch eine andere möglichkeit gibt, oder ich doch sowas ausschliessen kann, bin ich auch gerne bereit dies zu verwenden *g*
Ich habe mal beim preg_match_all diesen search pattern: "/\[aurl=("|['\"]?)([^\"']+)\\1](.+)\[\/aurl\]/esiU"
Er findet mir auch alle jedoch weiss ich nicht wie ich nun weiter arbeiten müsste. Man scheint ja nichts ausschliessen zu können beim preg_replace direkt und das würde ja anscheinend auch zu sehr auf die performance gehen.
Kommentar