PHP技术

当前位置:首页 > PHP技术 >

PHP查询百度收录与排名

时间:2015-05-29        阅读:次        QQ群:182913345

PHP实现批量查询关键词百度收录与排名,演示代码如下:

/*
 * 收录、排名
 *
 * @access public
 * @return void
 */
public function checkGather(){
	$keyword = urldecode(I('get.txt'));
	$url = urldecode(I('get.url'));
	$baiduIP = I('get.baiduIP') ? I('get.baiduIP') : 'www.baidu.com';
	if(empty($keyword) || empty($url)){
		header('HTTP/1.0 404 Not Found');
		exit();
	}

	$data = array('index_state'=>0, 'gather_state'=>0);
  
	//获得网址内容
	$gatherContent = @file_get_contents("http://{$baiduIP}/s?wd=". urlencode($url) ."&pn=0");  
	if(strstr($gatherContent, '验证码')){
		preg_match('/<input[^>]*name="url"[^>]*value="([^>]*)">/', $gatherContent, $baiduUrl);
		$gatherContent = @file_get_contents($baiduUrl[1]);
	}

	//检查是否收录
	if(!strstr($gatherContent, iconv('gbk','utf-8','没有找到该URL')) && !strstr($gatherContent, iconv('gbk','utf-8','抱歉,没有找到'))){
		$data['gather_state'] = 1;
		//获得首页内容
		$enKeyword = urlencode($keyword);
		$indexContent = @file_get_contents("http://{$baiduIP}/s?wd=$enKeyword&pn=0");

		//首页内容是否出现该域名
		$ulrArray = explode('.', $url);
		$domain = (count($ulrArray) <= 2) ? str_replace('http://', '', $ulrArray[0]) : $ulrArray[1];
		preg_match("/$domain/",$indexContent,$domainExists);

		if($domainExists){
			$indexArray = preg_split('/class="result[^>]*?id="\d{1,2}"/', $indexContent);
			array_shift($indexArray);

			//循环检查是否存在首页
			$p = 0;
			$regexCache = '/<a[^>]*href="([^\s]*)"[^>]*>/';

			foreach($indexArray as $v){
				$p++;

				//获得快照内容
				preg_match($regexCache, $v, $indexCacheResult);
				$header = get_headers($indexCacheResult[1],1);
				$domain = is_array($header['Location']) ? $header['Location'][0] : $header['Location'];

				//匹配URL
				if($url == $domain){
					$data['index_state'] = $p;
					break;
				}
			}

			unset($gatherContent);
			unset($indexContent);
			unset($indexCacheContent);
		}
	}
	echo json_encode($data);
}

上一篇:php操作MySQL基本函数

下一篇:PHP实现发送邮件详细介绍

扫一扫,更多精彩内容推送

PHP技术分享

分享PHP技术,前端技术,数据库,SEO优化,服务器,网络安全等知识,是php程序员工作学习的好帮手!

Copyright © 2013-2015.PHP技术分享 www.php520.cn  版权所有  网站地图    PHP学习交流群

免责声明:网站内容收集于互联网,本网站不承担任何由于内容的合法性及健康性所引起的争议和法律责任。

欢迎大家对网站内容侵犯版权等不合法和不健康行为进行监督和举报。 沪ICP备15014499号-2