HTML seite parsen

scherzkecks

Mitglied
Hallo zusammen,

ich habe eine Webseite mit einer Liste mit bildern.
HTML:
<img src="./s/1343.png"/>
<img src="./s/1693.png"/>
<img src="./s/1786.png"/>
<img src="./s/9421.png"/>
Leider sind die Ziffern nicht aufsteigend und somit kann ich folgendes nicht anwenden:
PHP:
function getTitleTag($webseite) {
   $titeltag = "";
   $html = implode("", file($webseite));
   if (preg_match("<img src=\".e/s/(.*).png\"/>", $html, $title)) $titeltag = $title[1];
   return $titeltag;
   
}

wie kann ich es jetzt hinbekommen über alle Tags der Liste zu laufen?
 
Öhm..was hat denn die Ziffernreinfolge damit zu tun?
Du musst noch Delimeter einbauen:
PHP:
preg_match("/<img src=\"\.\/s\/(.*)\.png\"\/>/", $html, $title)
So sollte das gehen.
Nicht vergessen den . zu escapen, sonst steht der für ein beliebiges Zeichen.
 
PHP:
$titel = getTitleTag($webseite="http://www.xyz.de");

Nur läuft die funktion NICHT über ALLE Tags.
Und was bedeutet "escapen"?
 
Zuletzt bearbeitet:
Vielleicht nimmst Du preg_match_all(). Escape'n heisst, Zeichen, die eine Sonderbedeutung haben, wie zB Punkt oder eckige Klammern, zu entschärfen und lediglich als Zeichen anzusehen.

mfg chmee
 
Das liegt daran, dass reguläre Ausdrücke ja nicht PHP spezifisch, sondern ein allgemeines Mittel das in der gesamten Informatik verwendet wird sind. Wenn du darüber mehr lesen willst kannst du hier http://www.regular-expressions.info/ nachschauen, ist so ziemlich die Referenzseite aber eben auf englisch.

Noch was, verwende lieber file_get_contents($website) anstatt so ein Kontrukt mit implode("", file($webseite));
 
In meiner Signatur ist ein RegExp-Online-Tester. Da gibt es auch Beispiele..
In Verbindung mit einer Übersicht eine schönes Spielzeug. Sogar die Wikiseite kann als Hilfe dienen ;)

mfg chmee
 
Zurück