《SEO必備:用PHP提交GOOGLE和百度PING服務(wù)的通用類》要點:
本文介紹了SEO必備:用PHP提交GOOGLE和百度PING服務(wù)的通用類,希望對您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:PHP開發(fā)
這是維易學(xué)院的PHP提交GOOGLE和百度PING服務(wù)的通用類。
GOOGLE和百度的PING服務(wù):
ping是基于XML_RPC標準協(xié)議的更新通告服務(wù),用于博客把內(nèi)容更新快速通知給百度,以便百度及時進行抓取和更新。百度明確表示每個站每天可以提交的url是有數(shù)量限制的。
在提交PING服務(wù)后,百度和谷歌的返回成功的內(nèi)容:
百度: <?xml version="1.0" encoding="UTF-8"?> <methodResponse> <params> <param> <value> <int>0</int> </value> </param> </params> </methodResponse> 谷歌: <?xml version="1.0"?> <methodResponse><params> <param><value><struct> <member> <name>flerror</name><value><boolean>0</boolean></value> </member> <member> <name>message</name><value>Thanks for the ping.</value> </member> </struct></value></param> </params></methodResponse>
下面是維易PHP學(xué)院的PING服務(wù)的通用類:
調(diào)用實例:
$ping = new pingSearchEngine('網(wǎng)站名稱XXX','http://www.fzlkiss.com/','http://www.fzlkiss.com/jiaocheng/20.html','http://www.fzlkiss.com/rss.php');
echo "PING返回結(jié)果:\r\n";
print_r($ping->result); #當為false時則全部失敗。百度或谷歌有一個以上成功即返回數(shù)組。
返回結(jié)果如下:
屬性$result為false時則全部失敗。百度或谷歌有一個以上成功即返回數(shù)組:
Array(
[baidu] => true
[google]=> true
)
維易PHP通用類:
/** GOOGLE和百度的PING服務(wù): * ping是基于XML_RPC標準協(xié)議的更新通告服務(wù),用于博客把內(nèi)容更新快速通知給百度,以便百度及時進行抓取和更新。百度明確表示每個站每天可以提交的url是有數(shù)量限制的 * 作者:http://www.fzlkiss.com/ * 版權(quán):可以隨意使用,但務(wù)必保留這些注釋信息。 */ 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( '<int>0</int>', #百度返回代碼中的檢查是否有成功的代碼。 '<boolean>0</boolean>' #谷歌的成功代碼 ); private $pingXML; /** 初始化參數(shù):四個均不可為空。 * @param string $webName 網(wǎng)站名稱。 * @param string $webIndex 網(wǎng)站首頁地址。 * @param string $scriptUrl 更新的網(wǎng)頁所在地址。 * @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}\"?> <methodCall> <methodName>weblogUpdates.extendedPing</methodName> <params> <param><value><string>${webName}</string></value></param> <param><value><string>${webIndex}</string></value></param> <param><value><string>${scriptUrl}</string></value></param> <param><value><string>${rssUrl}</string></value></param> </params> </methodCall>"; } 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); #不輸出返回的內(nèi)容 curl_setopt($ch, CURLOPT_POST, 1); #使用POST方式 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); #設(shè)置頭信息。 curl_setopt($ch, CURLOPT_POSTFIELDS, $this->pingXML); #要發(fā)送的內(nèi)容。 $seRe = curl_exec ($ch); #echo $seRe."\r\n\r\n<br />\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; } }
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/149.html