失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 网页自动更换标题代码php 抓取网页标题关键字描述和网页内容并自动转码

网页自动更换标题代码php 抓取网页标题关键字描述和网页内容并自动转码

时间:2021-09-08 02:04:52

相关推荐

网页自动更换标题代码php 抓取网页标题关键字描述和网页内容并自动转码

# $url:网址 #$encode:编码

function htmload($url,$encode='UTF-8'){

$pageinfo = array();

$pageinfo['content_type'] = '';

$pageinfo['charset'] = '';

$pageinfo['title'] = '';

$pageinfo['description'] = '';

$pageinfo['keywords'] = '';

$pageinfo['body'] = '';

$pageinfo['httpcode'] = 200;

$ch = curl_init();

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);

curl_setopt($ch, CURLOPT_TIMEOUT, 8);

curl_setopt($ch, CURLOPT_FILETIME, 1);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_URL,$url);

$curl_start = microtime(true);

$store = curl_exec ($ch);

$curl_time = microtime(true) - $curl_start;

if( curl_error($ch) ) {

$pageinfo['httpcode'] = 505;

return $pageinfo;

}

$pageinfo['httpcode'] = curl_getinfo($ch,CURLINFO_HTTP_CODE);

$pageinfo['content_type'] = curl_getinfo($ch,CURLINFO_CONTENT_TYPE);

if(intval($pageinfo['httpcode']) <> 200 or !preg_match('@text/html@',curl_getinfo($ch,CURLINFO_CONTENT_TYPE))){

return $pageinfo;

}

preg_match('#charset=([^/s/n/r]+)#i',curl_getinfo($ch,CURLINFO_CONTENT_TYPE),$matches); //从header 里取charset

if( trim($matches[1]) ){

$pageinfo['charset'] = trim($matches[1]);

}

curl_close ($ch);

$store = preg_replace("//smUi",'',$store);

$store = preg_replace("/(.*)/smUi",'',$store);

$store = preg_replace("//",'',$store);

if($pageinfo['charset'] == '' ) {

preg_match('@]*>@i',$store,$matches);

$pageinfo['charset'] = trim($matches[1]);

}

preg_match('//iU',$store,$matches);

$desc = trim($matches[1]);

$pageinfo['description'] = get_encoding(str_replace("/", '',$desc),$encode);

preg_match('//iU',$store,$matches);

$keywords = trim($matches[1]);

$pageinfo['keywords'] = str_replace("/", '',$keywords);

preg_match("/

(.*)/smUi",$store, $matches);

$pageinfo['title'] = get_encoding(trim($matches[1]),$encode);

preg_match("/

(.*)/smUi",$store, $matches);

$pageinfo['body'] = get_encoding(addslashes(clhtml($matches[1])),$encode);

return $pageinfo;

}

#清理内容空格转义字符及js代码

function clhtml($document){

$document = trim(preg_replace("/\s|/","",$document));

if (strlen($document) <= 0){

return $document;

}

$search = array (

"''si",

"']*?>'si",

"'[/r/n/s+]'",

"'&([/w]+);'i",

"'&bp;'"

);

$replace = array ( "","","", "","");

return @preg_replace ($search, $replace, $document);

}

#转码

function get_encoding($data,$to){

$encode_arr = array('UTF-8','ASCII','GBK','GB2312','BIG5','JIS','eucjp-win','sjis-win','EUC-JP');

$encoded = mb_detect_encoding($data, $encode_arr);

$data = mb_convert_encoding($data,$to,$encoded);

return $data;

}

代码参考了网络上的一部分,但网上的基本上都有BUG,我修改和优化了一下,留着说不定将来的某一天我也能做搜索引擎的时候用 哈哈。。

如果觉得《网页自动更换标题代码php 抓取网页标题关键字描述和网页内容并自动转码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。