Wie ein Teil von <iframe> tag?
Ich bin versucht, die markierten Teile dieser Zeichenfolge:
<iframe vielleicht sowas hier src="http://some.random.url.com/" und die Reihe geht weiter...
Ich entsprechend die src="" wenn es innerhalb von einem tag. Das iframe-tag können überall platziert werden in der Quelle.
Vielen Dank im Voraus! 🙂
InformationsquelleAutor qwerty | 2010-09-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie einen DOM-parser. Hier ist ein Beispiel mit DOMDocument :
da HTML ist keine reguläre. HTML-gebrochen werden kann, können Attribute enthalten Zeichen, die Sie erwarten, zu finden am Ende eines Tags, tags können verschachtelt werden,... all das macht reguläre Ausdrücke ein schlechtes Werkzeug zum Parsen von HTML.
Wenn Sie nur einen regex verwenden, könnten Sie mit einer
<iframe ...
- tag innerhalb eines Kommentars, oder dein regex könnte nicht damit umgehen, einige Charaktere, die auftreten konnten, zwischen den<iframe
und diesrc=
tag, oder erhalten Sie möglicherweise die Trennzeichen falsch am Ende dersrc
Attribut (Attribute kann nicht zitiert werden), und Sie haben zu tun, die HTML-entity-Decodierung auf den Inhalt dersrc
Attribut selbst, wenn Sie einen regex verwenden, und auf und auf. Durch die Zeit, die Sie mit all diesen Fällen in eine regex, es wird länger, komplizierter und viel mehr dürfte buggy sein, als nur mit einem DOM-parser.Nur betrachten Sie das folgende Beispiel : <!--<iframe src="-->NotAPath"> Wie kann regexp effektiv erkennen es ist nicht ein iframe ?
InformationsquelleAutor HoLyVieR
Ausgabe:
Aber dies ist ein schneller Weg, dies zu tun mit regulären Ausdruck, der brechen kann mit unsauberem html oder Probleme verursachen, gehen für einen dom-parser für ein gutes proof-Lösung.
InformationsquelleAutor aularon
Wenn Sie auf der Quelle ist wohlgeformtes xml-Sie können auch xpath verwenden, um die Zeichenfolge".
InformationsquelleAutor adamse
Einem regulären Ausdruck ist der sauberste Weg, es zu tun:
Wahrscheinlich downvoted weil es nicht empfohlen, um zu analysieren, HTML mit regulären Ausdrücken.
InformationsquelleAutor zmonteca
sehen RegEx-match-open-tags außer XHTML geschlossene tags
Sagte, Ihre Besondere situation nicht richtig analysieren... nur string-matching.
Methoden dafür wurden bereits aufgezählt, bevor meine Antwort hier...
gut, wir arbeiten hart, um zu verbreiten das Märchen von der Regex-Dom-Parser, und Sein Untergang 😀
InformationsquelleAutor jrharshath
Sollten Sie einen DOM-parser, aber diese regex würde Ihnen den Einstieg, wenn es gibt einen Grund, müssen Sie regexes
Es verwendet named capture groups by the way, hier ist, wie Sie arbeiten
Sie waren nicht unklar, und das passt nicht der ganze iframe-element, gut, tut es, aber es enthält benannte Gruppen, so können Sie abrufen, src, siehe meine Antwort geändert
Wir sind näher, aber das ist, was es gibt jetzt: src="existenz.se/amedia/?typ=youtube&url=http://www.youtube.com/... " marginheight="0"..... Aber ich will nur die Rückkehr der tatsächliche Wert des src-tag (nicht src="..").
probieren Sie es jetzt, ich veränderte es etwas
Habe nun einen Fehler aus: Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 70....
InformationsquelleAutor CaffGeek