2016-04-07 8 views
0

Ich bin nicht gut mit Regex;Getting webpage title regex

ich die Homepage zu lesen versuchen titles.I einige Seiten mit Strukturen begegnet ist wie <title itemprop="name">test - Google+</title> OR <title id="name">Safaricom - Google+</title>

Wenn ich versuche, sie mit dem folgenden Code zu lesen i untitled bekommen, wie ich dieses Problem beheben kann.

$header_data = Array(); 
if (preg_match("@<title *>(.*?)<\/title*>@si", $file, $header_data)) { 
     $title = trim($header_data[1]); 
} 

Antwort

0

Das Problem hierbei ist die Verwendung von *

  • zeigt an, dass der vorhergehende regex/Charakter kann vorhanden 0 oder viele Male

sein, so ist dies viele, einen Raum zu entsprechen versucht, Zeiten und wird nur für Leerzeichen nach dem Titel und zwischen

versuchen

<title.*>(.*?)<\/title> 
+0

danke ... ich habe das getestet, aber es funktioniert immer noch nicht –

+0

@philip Funktioniert für mich ... http://www.phpliveregex.com/p/fgs – Andreas

+0

@Andreas Sorry, ich habe diese preg_match verwendet ("@ (. *?) <\/title*> @si", $ file, $ header_data) anstelle von preg_match ("/ (. *) <\/title> /", $ file, $ header_data); –