Hallo,
ich würde gerne eine Seite mit „cURL“ und „preg_match“ auslsen!
Es gibt zwei Möglichkeit:
http://www.musterdomain.de
oder
www.musterdomain.de
Ich würde gerne nur die Domains nach dem Schema „www.musterdomain.de“
auslesen!
Hat jemand eine Idee … wie man das mit „preg_match“ umsetzt?
Danke! Andreas.
Moin!
Das sollte so gehen:
preg\_match\_all ('#(?:http\://)((?:[a-z][a-z\d\-]\*\.)+[a-z]{2,})#is', $sHtml, $aResults);
Ist ungetestet, sollte aber auf gültige FQDNs passen. Musst du mal schauen. Im Übrigen nutze ich hier preg_match_all(), da ich davon ausgehe, dass es mehrere URLs geben wird. Das Ergebnis kannst du mit var_dump($aResults); ausgeben, dann siehst du, wie du weiterverarbeiten kannst.
MfG
Lutz
preg_match_all
(’#(?:http://)((?:[a-z][a-z\d-]*.)+[a-z]{2,})#is’, $sHtml,
$aResults);
Hallo Lutz,
danke für deine Antwort!
Hast recht mit preg_match_all … macht mehr Sinn.
Mein Problem ist leider noch nicht richtig gelöst…
Folgenes Problem: Ich möchte eine Seite mit cURL auslesen…
das klappt auch soweit gut! In der Seite sind einerseits
Domains nach dem Schema „http://www.beispiel.de“ oder
http://www.beispiel.info"!!
Anderseits sind aber auch Adressen nach dem Schema
„www.beispiel.de“ oder „beispiel.info“ in der
Seite - und genau diese möchte ich haben!
Gruß, Andreas.
Ups, hab ein „?“ vergessen:
preg_match_all
(’#(?:http://)?((?:[a-z][a-z\d-]*.)+[a-z]{2,})#is’, $sHtml,
$aResults);
anstatt:
preg_match_all
(’#(?:http://)((?:[a-z][a-z\d-]*.)+[a-z]{2,})#is’, $sHtml,
$aResults);
Sorry.
Klappt es jetzt?
Alternativ kannst du den ersten Teil (?:http://)? auch weglassen, ist Geschmackssache.
Klappt es jetzt?
Hallo,
leider klasppts überhaupt nicht!
Probier´s mal bitte …
Gruß, Andreas
Hi,
Anderseits sind aber auch Adressen nach dem Schema
„www.beispiel.de“ oder „beispiel.info“ in der
Seite - und genau diese möchte ich haben!
URLs ohne das eindeutige http-Protokoll zu finden, ist 100%ig gar nicht möglich, aber mal ein erster Ansatz:
Die Suche kann entweder exakt mit der negativen Lookbehind-Assertion:
(?
Hallo Ingo!
Danke für deine Antwort!
Irgendwie kann ich es einfach nicht glauben …
das es nicht funktioniert …
www.musterdomain.de oder www.musterdomain.info
zu erkennen???!!!
URLs wie http://www.musterdomain.de oder
http://www.musterdomain.info sollen ignoriert werden!
Gruß, Andreas.
Hi,
warum sollte das nicht funktionieren? Hast Du mal versucht, meine Ansätze einfach zusammenzufügen?
Eine passende RegEx für die aufgezeigten einfachen Fälle wäre:
\b(?
Gruß
Ingo
Hallo Ingo,
danke für die Hilfe!
Ich habe jetzt mam folgendes probiert!
$kis = „domain1.dedomain2.infodomain3.com“;
preg_match_all("#(?
… mit folgenden Ergebnis:
Array
(
[0] => Array
(
[0] => ww.domain
[1] => domain1.de
[2] => ww.domain
[3] => domain2.info
[4] => ww.domain
[5] => domain3.com
)
[1] => Array
(
[0] => ww.domain
[1] => domain1.de
[2] => ww.domain
[3] => domain2.info
[4] => ww.domain
[5] => domain3.com
)
[2] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] =>
[5] =>
)
)