php获取所点链接的标题,php批量获取网址的标题关键字说明

该代码段展示了如何使用PHP进行网页内容抓取,包括URL信息获取、编码转换、元信息提取(如标题、描述、关键词)以及数据记录到文件。通过curl库进行HTTP请求,使用正则表达式匹配标题,结合mb_detect_encoding和iconv处理不同编码的字符串,最后将抓取结果序列化并写入日志文件。
摘要由CSDN通过智能技术生成

header("Content-Type: text/html; charset=utf-8");

define('Root', str_replace("\\", '/', dirname(__FILE__)));

/**

* 自动转字符串编码为UTF-8

* @param String $String 字符串

* @return String

*/

function strCoding($String)

{

$encode = mb_detect_encoding($String, array('ASCII','UTF-8','GB2312','GBK','BIG5'));

if ($String != "UTF-8"){

$String = iconv($encode,'UTF-8',$String);

}

return trim($String);

}

/**

* 获取网址站点信息

* @author 懒人程序 [i@kuitao8.com]

* @param String $Url 目标地址

* @return Array

*/

function SiteInfo($Url){

if(empty($Url)){return false;}

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $Url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

$contents=curl_exec($ch);

curl_close($ch);

$meta = get_meta_tags($Url);

preg_match("%(.*?)%is",$contents,$title);//匹配代码中的标题部分

$title['1'] = (isset($title['1']))?strCoding($title['1']):'';

$description = (isset($meta['description']))?strCoding($meta['description']):'';

$keywords = (isset($meta['keywords']))?strCoding($meta['keywords']):'';

$i = array('name'=>$title[1],'description'=>$description,'url'=>$Url,'keywords'=>$keywords);

return $i;

}

/**

* 数据记录

* @author 懒人 程序 [i@kuitao8.com]

* @param Array $SiteArr Url集数组

* @return String

*/

function Record(array $SiteArr){

$XmlUrl = null;

if(count($SiteArr)<=0){die('请输入数据');}

foreach ($SiteArr as $value) {

$XmlUrl[] = SiteInfo($value);

}

$XmlUrl = serialize($XmlUrl);

$logfile = fopen(Root.'/'.date('Y-m-d').'.txt',"w");

fwrite($logfile, $XmlUrl);

fclose($logfile);

die('记录完成!');

}

$SiteArr = array('http://www.kuitao8.com','http://www.hao123.com');

echo Record($SiteArr);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值