globe: Den <title> einer anderen Seite auslesen

Beitrag lesen

n'abend,

Hey danke. Ich hätte es btw. auch so gemacht wenn ich nicht zu blöd für Regular Expressions wäre.

Wenn es nicht klappt, kannst du einfach hier nachfragen. Bei Fragen zu Regular Expressions ist es immer nett, wenn man eine Demo-Quelle, das gewünschte Resultat und deine bisherigen RegEx versuche gleich mitgeliefert bekommt... ;)

$page=file_get_contents("http://de3.php.net/preg_match");
preg_match("/<title[^>]*?>(.*?)</title>/i",$page);

Gibt mir übrigens int(1) aus wenn ich var_dump drüberlaufen lasse.
Muss also irgendwas falsch laufen.

Du hast die Dokumentation wohl nicht gelesen, was? Andernfalls wäre dir vermutlich aufgefallen, dass preg_match *immer* 0 oder 1 zurückliefert und du die Fundstücke auf anderem Wege abholen musst:

  
$page = file_get_contents( 'http://de3.php.net/preg_match' );  
$matches = array();  
  
if( !$page )  
  echo 'Page konnte nicht geladen werden...';  
  
else if( preg_match( '/<title[^>]*?>(.*?)<\/title>/i', $page, $matches ) )  
{  
  echo '<pre>';  
  print_r( $matches );  
  echo '</pre>';  
}  
else  
  echo '<title> konnte nicht gefunden werden...';

»» Neben dem "manuellen" Stringgedöns könntest du den geladenen HTML-Source übrigens mit DOMDocument::loadHTML() parsen lassen.

Dann müsste ich wieder zu sehr rumspielem zwischen PHP und Javascript, denn der Titel wird in eine Datenbank eingetragen.

Bist du dem Irrglauben verfallen DOM gäbe es nur in Javascript? Andernfalls verstehe ich die Einbringung von Javascript in dieses durchaus serverseitige Spielchen nicht so ganz.

»» Wenn du auf dem geladenen Dokument mehr machen musst, als den <title> auszulesen, kann das recht schnell, recht sinnvoll werden.

Nein zum Glück nicht. Gehts übrigens noch schnelelr als mit file_get_contents?

Schneller "programmiert"? schneller als mit einem einzigen Funktionsaufruf wirst du das wohl nicht hinbekommen.
Schneller "ausgeführt"? Mir sind keine Geschwindigkeitsunterschiede zwischen file_get_contents() der guten alten fsockopen()-Variante, cURL und HTTPRequest (so ein widerliches PEAR Dings) bekannt. Aber spätestens wenn du auf den Trichter kommst, dass du eventuell ein paar Cookies (wegen Session oder so?) oder ein paar bestimmte HTTP-Header mitschicken willst, wirst du dich von der file_get_contents()-Methode verabschieden dürfen.

Solltest du Zeit haben, schau dir fsockopen an. Dann bist du gezwungen dich ein wenig mit HTTP auseinanderzusetzen. Das kann nur von Vorteil sein. Bei weniger Zeit wird cURL schneller zum Erfolg führen, sofern es in deiner Zielumgebung verfügbar ist.

weiterhin schönen abend...

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