我想从html字符串中提取title标签的内容。我做了一些搜索但到目前为止我无法在VB / C#或PHP中找到这样的代码。这也适用于大写和小写标签,例如应该同时使用<title></title>
和&lt; TITLE></TITLE>
。谢谢。
答案 0 :(得分:7)
您可以使用正则表达式,但它不是完全防错的。如果你只是想要一些简单的东西(在PHP中):
function get_title($html) {
return preg_match('!<title>(.*?)</title>!i', $html, $matches) ? $matches[1] : '';
}
答案 1 :(得分:3)
听起来像正则表达式的工作。这将取决于HTML格式正确,即只在head元素中找到title元素。
Regex regex = new Regex( ".*<head>.*<title>(.*)</title>.*</head>.*",
RegexOptions.IgnoreCase );
Match match = regex.Match( html );
string title = match.Groups[0].Value;
我没有在我面前的正则表达备忘单,所以可能需要稍微调整一下。请注意,在没有title元素的情况下也没有错误检查。
答案 2 :(得分:0)
如果title标签中有任何属性(不太可能但可能发生),则需要按如下方式更新表达式:
$title = preg_match('!<title.*>(.*?)</title>!i', $url_content, $matches) ? $matches[1] : '';