我正在做一个书签系统,并寻找用PHP检索页面标题的最快(最简单)方法.
有类似的东西会很高兴 $title = page_title($url)
(.*)<\/title>/siU", $fp, $title_matches); if (!$res) return null; // Clean up title: remove EOL's and excessive whitespace. $title = preg_replace('/\s+/', ' ', $title_matches[1]); $title = trim($title); return $title; } ?>
给出了以下输入的动力:
print page_title("http://www.google.com/");
输出:谷歌
希望一般足以满足您的使用需求.如果您需要更强大的功能,那么花一点时间研究HTML解析器可能不会有什么坏处.
编辑:添加了一些错误检查.有点冲出第一个版本,对不起.
没有reg表达式你可以得到它:
$title = ''; $dom = new DOMDocument(); if($dom->loadHTMLFile($urlpage)) { $list = $dom->getElementsByTagName("title"); if ($list->length > 0) { $title = $list->item(0)->textContent; } }
或者使这个简单的功能稍微更具防弹性:
function page_title($url) { $page = file_get_contents($url); if (!$page) return null; $matches = array(); if (preg_match('/(.*?)<\/title>/', $page, $matches)) { return $matches[1]; } else { return null; } } echo page_title('http://google.com');
正则表达式?
使用cURL获取$ htmlSource变量的内容.
preg_match('/(.*)<\/title>/iU', $htmlSource, $titleMatches); print_r($titleMatches);
看看你在那个数组中有什么.
大多数人说HTML遍历虽然你应该使用解析器,因为正则表达式可能不可靠.
其他答案提供更多细节:)