Regulären Ausdruck beginnend mit http und endend mit pdf?

Habe ich geladen, die gesamte HTML-Code einer Seite und wollen Sie zum abrufen aller URLs, die mit http beginnen und enden mit pdf. Ich schrieb das folgende, das hat nicht funktioniert:

$html = file_get_contents( "http://www.example.com" );
preg_match( '/^http(pdf)$/', $html, $matches );

Ich bin Recht neu in regex, aber von dem, was ich gelernt habe ^ markiert den Anfang eines Musters und $ markiert das Ende. Was mache ich falsch?

  • Don ' T parse HTML mit regulären Ausdrücken.
  • Er scheint auf der Suche nach link, das könnte sein, nur-text-link, so dass er nicht auf der Suche nach Parsen des HTML-Codes.
  • Im code-Beispiel, erste Zeile ist die Lesung eine vollständige HTML-Quelle und die zweite Linie verläuft die regex drüber. Bedeutet das nicht, dass er möchte, dass zum Parsen der HTML mit regex? Wie nennen Sie das?
  • Wie würden Sie die Suche nach URLs in normalen text? Sie sind zu Recht über die do-not-parse-html-mit-regex-Sache, aber der text-nodes enthalten können URLs auch. Sie können extrahieren Sie diese Informationen mit einem regulären parser. Sein Ansatz ist völlig vernünftig.
  • Ich war nicht bewusst, dass file_get_contents() ist in der Lage, nur Extrakt textnodes aus dem HTML-Dokument.
  • Das ist es nicht. Aber er versucht nicht zu analysieren, HTML mit diesem regex. Es gibt keinen Fall, wo die obige Konstrukt würde dazu führen, keine Probleme (im Gegensatz zu regex-html-parsing), so dass seine feine.
  • Ich Frage mich, wie man das so sagen kann. Aus dem code-Beispiel in der Frage, er will analysieren plain text HTTP-URIs, die aus einer HTML-Datei. Es gibt keine iteration über die textnodes des Dokuments, noch ist angegeben, welche Teile zum extrahieren der URLs.
  • Die OP sagt, dass er testen möchte alle URLs. Er nicht brauchen, um über HTML, da gibt es keine HTML-Sonderzeichen in einer URL zu löschen. Es stört nicht mit HTML-markup.
  • HTML-escape-text-Sequenzen (die stören würde), aber nicht genug, HTTP-URLs habe, die Flucht squences als gut. Die .pdf zum Beispiel könnte %-Triplett kodiert.

InformationsquelleAutor Weblurk | 2011-06-07
Schreibe einen Kommentar