前面的文章《php正则获得网页的keywords和description部门》已经提到正则提取keywords和description了,此刻再先容利用curl的来提取meta中的keywords和description。相对get_meta_tags,cURL拿来收罗更为强大。
下面cURL拿来收罗meta ,php函数:
<?php
/**
* 利用cURL获取一个网页中的 keyword 和 description 部门
*
* @param str $ 查询的url地点
* @return array array('keyword'=>keyword部门,'description'=>description部门)
*/
function curl_getkd($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
$info = curl_getinfo($ch);
if ($html === false) {
echo "cURL Error: " . curl_error($ch);
}
curl_close($ch);
preg_match_all("/<meta[^>]+name=\"([^\"]*)\"[^>]" . "+content=\"([^\"]*)\"[^>]*>/i", $html, $r, PREG_PATTERN_ORDER);
for ($i = 0;$i < count($r[1]);$i++) {
if (strtolower($r[1][$i]) == "keywords") $meta['keywords'] = $r[2][$i];
if (strtolower($r[1][$i]) == "description") $meta['description'] = $r[2][$i];
}
return $meta;
}
// 测试
$r = curl_getkd('http://www.qq.com/');
echo '<pre>';
print_r($r);
echo '</pre>';
// 输出
/**
Array
(
[keywords] => ……
[description] => ……
)
*/
?>
对付功效差异的编码还要举办转码处理惩罚,这就不多表明白。
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://www.heiqu.com/7861.html