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