欢迎来到元素模板ys720.com,本站提供专业的织梦模板PBOOTCMS模板网站模板网站修改/网站仿站
当前位置:主页 > 程序教程 > 其他教程 >
其他教程

php获取网页meta信息(包括title、keywords、description)的两种方法

(元素模板) / 2022-06-13 18:01

在网页采集过程中,我们需要获取一个网站的meta信息,如title、keywords、description等,本文章向大家介绍两种方法获取网站的meta信息,第一种方法是使用get_meta_tags函数,第二种方法是使用正则表达式匹配的方法获取。

1:使用get_meta_tags函数获取meta信息

比如我们要获取https://www.ys720.com这个网页的meta信息,可以直接使用php内置函数get_meta_tags获取,代码如下:

<?php  

    $meta_tags = get_meta_tags("https://www.ys720.com/");

    print_r($meta_tags);

?>

 2:使用正则表达式获取meta信息

PHP代码如下:

$site = "http://www.ys720.com";

$content = get_sitemeta($site);

print_r($content);

/** 获取META信息 */

function get_sitemeta($url) {   

     $data = file_get_contents($url);       

     $meta = array();

     if (!empty($data)) {

          #Title

          preg_match('/<TITLE>([\w\W]*?)<\/TITLE>/si', $data, $matches);

          if (!empty($matches[1])) {

               $meta['title'] = $matches[1];

          }

         

          #Keywords

          preg_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];

          }

         

          #Description

          preg_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;

}



Copyright @ 2013-2021 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com