这个问题有很多答案,但不是一个完整的问题:
使用一个正则表达式,如何从<title>Page title</title>
中提取页面标题?
还有其他几种情况如何输入标题标签,例如:
<TITLE>Page title</TITLE>
<title>
Page title</title>
<title>
Page title
</title>
<title lang="en-US">Page title</title>
......或上述任意组合。
它可以在自己的行上或在其他标签之间:
<head>
<title>Page title</title>
</head>
<head><title>Page title</title></head>
提前感谢您的帮助。
UDPATE:因此,正则表达式方法可能不是最佳解决方案。哪个基于PHP的HTML解析器可以处理HTML格式良好(或不太好)的所有场景?
更新2:sp00m的正则表达式( https://stackoverflow.com/a/13510307/1844607)似乎在所有情况下都有效。如果需要,我会回到这里。
答案 0 :(得分:7)
答案 1 :(得分:2)
使用DOMDocument类:
$doc = new DOMDocument();
$doc->loadHTML($html);
$titles = $doc->getElementsByTagName("title");
echo $titles->item[0]->nodeValue;
答案 2 :(得分:0)
使用此正则表达式:
<title>[\s\S]*?</title>