RegEx (PCRE): Schließende Tags ergänzen?
Hallo!
Ich verzweifle im Moment gerade an einem RegEx, der, falls in einem String ein HTML-Tag geöffnet, aber nicht geschlossen ist, den schließenden ergänzt. Beispiel: Code:
Hallo Nun möchte ich ein ergänzen. Ich habe zwei Ansätze versucht: 1. Ich habe mit einer Fallunterscheidung prüfen wollen, ob der öffnende Tag existent ist, der zweite aber nicht: Code:
<?php 2. Ich wollte mit folgendem Code nach Strings suchen, die öffnende, aber keine schließenden Tags beinhalten, und dann durch den selben String mit einem schließenden Tag am Schluss ersetzen: Code:
<?php Wäre für jede Hilfe dankbar, ob's jetzt ne Reaparatur von obigem Code ist, oder nochmal ein anderer Ansatz |
Zitat:
Zitat:
damit ich dir helfen kann, muß ich genau wissen, wie die bedingungen sind, die vorliegen. pcre ist ne formale sprache, das heißt, wenn du exakt (in normaler sprache) formulieren kannst, was du machen willst, kann man es meisten sehr einfach übersetzen. ansonsten: entweder per assertion oder per rekursiven pattern (ja nach bedingungen). zum testen: http://pcre.nophia.de/evaluate/index.php (ich würd dir ja selbst was aufstellen, hab aber keine zeit - hab durch den ewigen text hier schon ewig zeit verschwendet :roll: ;) - eventuell heut abend ... ) was machst du, wenn nur der schließende tag existiert? eigentlich ein interessantes thema, werd mal irgendwann etwas dazu schreiben. achso - je nach situation hilft dir dieser beitrag vielleicht: http://www.php-resource.de/forum/sho...threadid=45908 - vielleicht ists auch overpowered, ka. |
erstma ne blöde frage, wie willst du wissen, wo der tag wider geschlossen werden soll?
und zu 1. ich glaub du das da nur n syntaxfehler drin.. dein $treffer fehlt.. http://www.php.net/manual/de/function.preg-match.php Code:
<?php zu 2. kann ich nix sagen, ich kapier weder dein text noch den code da, sry ^^ __edit: derhund war schneller -.- ^^ |
@psycho_dmr
deine Lösung klappt, jedoch schließt er dann nur einen Tag. Sind mehr als einer ungeschlossen, bleiben die restlichen halt offen. Da muss man wohl irgendwie mit einer Schleife mehrmals drüber. Muss ich nacher mal schauen. Zitat:
@derHund Zitat:
Zitat:
Zitat:
Der link zu php-resource.de funktioniert leider nicht, da muss ich wohl registriert sein Der punkt ist halt, dass ich mich noch nicht lang mit RegExen beschäftige, bin noch in der lernphase ;) |
Sorry für den Doppelpost, aber ich hab das Problem gelöst! :D
Code:
<?php Habe aber noch über einen anderen ansatz nachgedacht, darstellungsfehler bei nicht geschlossenen Tags zu vermeiden: Man bearbeitet vorher den String mit htmlspecialchars(), und ersetzt dann alle < und > die zu vollständigen Tag-Pärchen gehören, durch < und >. Muss ich aber noch probieren. Vielen dank euch beiden für bei eure hilfe! 8) |
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:38 Uhr. |
Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
© Dirk H. 2003 - 2023