本文主要是介绍php获取网页meta信息(包括title、keywords、description)的两种方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在网页采集过程中,我们需要获取一个网站的meta信息,如title、keywords、description等,本文章向大家介绍两种方法获取网站的meta信息,第一种方法是使用get_meta_tags函数,第二种方法是使用正则表达式匹配的方法获取。
1:使用get_meta_tags函数获取meta信息
比如我们要获取http://www.taobao.com这个网页的meta信息,可以直接使用php内置函数get_meta_tags获取,代码如下:
<?php $meta_tags = get_meta_tags("https://www.csdn.net/");print_r($meta_tags);
?>
2:使用正则表达式获取meta信息
PHP代码如下:
$site = "http://www.ub07.com";
$content = get_sitemeta($site);
print_r($content);/** 获取META信息 */
function get_sitemeta($url) {$data = file_get_contents($url);$meta = array();if (!empty($data)) {#Titlepreg_match('/<TITLE>([\w\W]*?)<\/TITLE>/si', $data, $matches);if (!empty($matches[1])) {$meta['title'] = $matches[1];}#Keywordspreg_match('/<META\s+name="keywords"\s+content="([\w\W]*?)"/si', $data, $matches); if (empty($matches[1])) {preg_match("/<META\s+name='keywords'\s+content='([\w\W]*?)'/si", $data, $matches); }if (empty($matches[1])) {preg_match('/<META\s+content="([\w\W]*?)"\s+name="keywords"/si', $data, $matches); }if (empty($matches[1])) {preg_match('/<META\s+http-equiv="keywords"\s+content="([\w\W]*?)"/si', $data, $matches); }if (!empty($matches[1])) {$meta['keywords'] = $matches[1];}#Descriptionpreg_match('/<META\s+name="description"\s+content="([\w\W]*?)"/si', $data, $matches); if (empty($matches[1])) {preg_match("/<META\s+name='description'\s+content='([\w\W]*?)'/si", $data, $matches); }if (empty($matches[1])) {preg_match('/<META\s+content="([\w\W]*?)"\s+name="description"/si', $data, $matches); }if (empty($matches[1])) {preg_match('/<META\s+http-equiv="description"\s+content="([\w\W]*?)"/si', $data, $matches); }if (!empty($matches[1])) {$meta['description'] = $matches[1];}}return $meta;
}
这篇关于php获取网页meta信息(包括title、keywords、description)的两种方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!