globe: Den <title> einer anderen Seite auslesen

Beitrag lesen

n'abend,

ist fast richtig

[...]

if(false!==($pos1=stripos($page, "<title>")))

Knapp am Ziel vorbei ist halt immer noch daneben.

Auch <title> kann Attribute haben. Diese unterschlägt die stripos() Lösung vollkommen. Im Konkreten können <title> mit den Attributen dir und lang ausgestattet werden.

Wie man sieht, geht es beim <title>-Tag ganz ohne Regulat Expressions, weil der i.d.R. ohne Attribute steht, die gesuchten Zeichenketten damit also genau bekannt sind.

"i.d.R" bedeutet halt leider nicht "ist so, punkt.". Wenn du Lösungen vorschlägst, dann bitte welche, die allgemeingültig und korrekt sind. Du hast hier eine "lehrende Position" eingenommen, verhalte dich entsprechend.

Wenn du aber wehement auf RegEx verzichten möchtest:

  1. Suche nach "<title", ignoriere Groß-/Kleinschreibung.
  2. Taste dich weiter bis zum nächsten ">", damit wird der öffnende Tag geschlossen.
  3. Merke dir die gefundene Position als "start".
  4. Laufe weiter um "</title>" zu finden, ignoriere Groß-/Kleinschreibung.
  5. Schneide Text zwischen start und ende aus, du hast deinen Titel.

Das sieht nach mächtig viel Code für nichts und wieder nichts aus.
RegExp: /<title[^>]*?>(.*?)</title>/i
Mit preg_match() wird das ganze zum Dreizeiler.

Neben dem "manuellen" Stringgedöns könntest du den geladenen HTML-Source übrigens mit DOMDocument::loadHTML() parsen lassen. Wenn du auf dem geladenen Dokument mehr machen musst, als den <title> auszulesen, kann das recht schnell, recht sinnvoll werden.

weiterhin schönen abend...

--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|