《SEO必备:用PHP提交GOOGLE和百度PING服务的通用类》要点:
本文介绍了SEO必备:用PHP提交GOOGLE和百度PING服务的通用类,希望对您有用。如果有疑问,可以联系我们。
相关主题:PHP开发
这是维易学院的PHP提交GOOGLE和百度PING服务的通用类。
GOOGLE和百度的PING服务:
ping是基于XML_RPC标准协议的更新通告服务,用于博客把内容更新快速通知给百度,以便百度及时进行抓取和更新。百度明确表示每个站每天可以提交的url是有数量限制的。
在提交PING服务后,百度和谷歌的返回成功的内容:百度:
0
谷歌:
flerror0
messageThanks for the ping.
下面是维易PHP学院的PING服务的通用类:
调用实例:
$ping = new pingSearchEngine('网站名称XXX','http://www.vephp.com/','http://www.vephp.com/jiaocheng/20.html','http://www.vephp.com/rss.php');
echo "PING返回结果:\r\n";
print_r($ping->result); #当为false时则全部失败。百度或谷歌有一个以上成功即返回数组。
返回结果如下:
属性$result为false时则全部失败。百度或谷歌有一个以上成功即返回数组:
Array(
[baidu] => true
[google]=> true
)
维易PHP通用类:/** GOOGLE和百度的PING服务:
* ping是基于XML_RPC标准协议的更新通告服务,用于博客把内容更新快速通知给百度,以便百度及时进行抓取和更新。百度明确表示每个站每天可以提交的url是有数量限制的
* 作者:http://www.vephp.com/
* 版权:可以随意使用,但务必保留这些注释信息。
*/
class pingSearchEngine
{
public $result = false;
private $serachEngine= array('baidu','google');
private $pingUrl = array( 'http://ping.baidu.com/ping/RPC2', #百度PING地址。
'http://blogsearch.google.com/ping/RPC2' #谷歌PING地址。
);
private $chkReStr = array( '0', #百度返回代码中的检查是否有成功的代码。
'0' #谷歌的成功代码
);
private $pingXML;
/** 初始化参数:四个均不可为空。
* @param string $webName 网站名称。
* @param string $webIndex 网站首页地址。
* @param string $scriptUrl 更新的网页所在地址。
* @param string $rssUrl RSS所在地址。
* @param string $encode 编码
**/
public function __construct($webName='', $webIndex='', $scriptUrl='', $rssUrl='' ,$encode='utf-8')
{
if(empty($encode) || empty($webName) || empty($webIndex) || empty($scriptUrl) || empty($rssUrl) ) return;
if(substr($webIndex,0,4)!=='http') return;
$this->_getXML($encode, $webName, $webIndex, $scriptUrl, $rssUrl );
$this->postUrl();
}
private function _getXML($encode, $webName, $webIndex, $scriptUrl, $rssUrl )
{
$this->pingXML =
"<?xml version=\"1.0\" encoding=\"${encode}\"?>
weblogUpdates.extendedPing
${webName}
${webIndex}
${scriptUrl}
${rssUrl}
";
}
private function postUrl()
{
$ch = curl_init();
$res = array();
for($i=0; $i<2 ; $i++)
{
$url = $this->pingUrl[$i];
$chkStr = $this->chkReStr[$i];
$headers = array(
"POST ".$url." HTTP/1.0",
"Content-type: text/xml; charset=\"gb2312\"",
"Accept: text/xml",
"Content-length: ".strlen($this->pingXML)
);
curl_setopt($ch, CURLOPT_URL, $url); #目标URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); #不输出返回的内容
curl_setopt($ch, CURLOPT_POST, 1); #使用POST方式
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); #设置头信息。
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->pingXML); #要发送的内容。
$seRe = curl_exec ($ch);
#echo $seRe."\r\n\r\n
\r\n";
if ( strpos($seRe, $chkStr)!==false )
{
$res[$this->serachEngine[$i]] = true; # ping成功,
}else{
$res[$this->serachEngine[$i]] = false;
}
}
curl_close($ch);
$this->result = $res ? $res : false;
}
}