本文實例講述了php基于curl主動推送最新內容給百度收錄的方法。分享給大家供大家參考,具體如下:
php curl的好處可以以最快的方式并且模仿post提供我們的url地址給百度搜索引擎進行收錄。
百度鏈接提交三種方式:
1、主動推送:最為快速的提交方式,推薦您將站點當天新產出鏈接立即通過此方式推送給百度,以保證新鏈接可以及時被百度收錄。
2、sitemap:您可以定期將網站鏈接放到sitemap中,然后將sitemap提交給百度。百度會周期性的抓取檢查您提交的sitemap,對其中的鏈接進行處理,但收錄速度慢于主動推送。
3、手工提交:一次性提交鏈接給百度,可以使用此種方式。
下面介紹使用curl主動推送鏈接的方式PHP示例,使用curl擴展:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$urls = array ( 'http://www.example.com/1.html' , 'http://www.example.com/2.html' , ); $api = 'http://data.zz.baidu.com/urls?site=www.dayecn.com&token=Db0ZoYUOwUyEp87Z' ; $ch = curl_init(); $options = array ( CURLOPT_URL => $api , CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => implode( "\n" , $urls ), CURLOPT_HTTPHEADER => array ( 'Content-Type: text/plain' ), ); curl_setopt_array( $ch , $options ); $result = curl_exec( $ch ); echo $result ; |
首先要在百度站長平臺驗證站點,然后獲取token密鑰,才有權限推送url給百度。百度站長平臺:http://zhanzhang.baidu.com
可以在發布一篇文章的時候就把這篇文章的url推送給百度站長平臺,或者批量推送,通過返回的$result狀態判斷推送是否成功,返回的狀態碼說明:
推送成功:
狀態碼為200,可能返回以下字段:
字段 | 是否必選 | 參數類型 | 說明 |
success | 是 | int | 成功推送的url條數 |
remain | 是 | int | 當天剩余的可推送url條數 |
not_same_site | 否 | array | 由于不是本站url而未處理的url列表 |
not_valid | 否 | array | 不合法的url列表 |
成功返回示例:
1
2
3
4
5
6
|
{ "remain" :4999998, "success" :2, "not_same_site" :[], "not_valid" :[] } |
推送失敗:
狀態碼為4xx,返回字段有:
字段 | 是否必傳 | 類型 | 說明 |
error | 是 | int | 錯誤碼,與狀態碼相同 |
message | 是 | string | 錯誤描述 |
失敗返回示例:
1
2
3
4
|
{ "error" :401, "message" : "token is not valid" } |
希望本文所述對大家PHP程序設計有所幫助。