快捷搜索:   nginx

PHP get_meta_tags获取网页标题title 描述description 关键字keywords等meta信息

PHP内置的get_meta_tags函数可以用于获取网页的标题(title)、描述(description)、关键字(keywords)等meta信息

使用方法如下:

$meta_array = get_meta_tags('https://www.bnxb.com');
var_dump($meta_array);


输出

array(4) {
  ["viewport"]=>
  string(56) "width=device-width, initial-scale=1.0, maximum-scale=1.0"
  ["applicable-device"]=>
  string(9) "pc,mobile"
  ["description"]=>
  string(253) "笨牛网 - 笨牛小白成长之路(教程 资源 网站 前端 后端 程序 运维 IT OFFICE 站长),提供网站建设,服务器运维,源码,数据库,IT知识,办公软件WORD,excel,ppt,access,photoshop学习,各种免费空间,域名,VPS介绍等"
  ["keywords"]=>
  string(213) "笨牛网,笨牛小白之家,教程,资源,网站,前端,后端,程序,运维,OFFICE,站长,服务器维护,电脑知识,OFFICE办公软件,站长源代码,免费资源,免费域名,免费服务器,免费VPS推荐"
}

get_meta_tags 默认是 utf-8 编码,如果遇到 gbk、gb2312编码,则会出现乱码,

例如,爬取www.qq.com,因为编码是 gb2312 所有出现了乱码:

$meta_array = get_meta_tags('http://www.qq.com');
var_dump($meta_array);



运行结果:   

array (size=3)
  'baidu-site-verification' => string 'cNitg6enc2' (length=10)
  'keywords' => string '???,????,???,????,???,NBA,???,?????,???,QQ,Tencent' (length=56)
  'description' => string '???????2003??????????????????????????????????????????????????????????????????????????????????????????????????????????????е?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????' (length=314)



解决乱码,这里介绍两个方法

方法1:加上 header 头编码,正确代码格式如下:
   

header("content-type:text/html; charset=gb2312"); 
$meta_array = get_meta_tags('http://www.qq.com');
var_dump($meta_array);



方法2:通用的编码解决方案,让你的浏览器自适应:
 

header("content-type:text/html; charset=xxx"); 
$meta_array = get_meta_tags('http://www.qq.com');
var_dump($meta_array);



注意:charset=xxx 表示让浏览器自动适配正确的网页编码,这样就不会造成显示乱码

顶(1)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论