利用PHP實現移動端mip主動推送

首先用三句話告訴你 MIP 是什麼?html

  1. MIP,是一套應用於移動網頁的開放性技術標準
  2. MIP,是一個打包的頁面加載提高解決方案
  3. MIP,是移動網頁加速器

加入 MIP 的準備工做git

網站編碼:必須是 UTF-8,子凡來解釋一下爲何是 UTF-8,而不是 GBK,gb2312,UTF-8 是國際通用,而 GBK 和 gb2312 是屬於國內中文的一個標準,因此在某些瀏覽器瀏覽可能出現亂碼,因此爲了更全面的兼容效果,因此 UTF-8 是必須的。github

瀏覽權限:無需登陸便可瀏覽,也就是說你的 MIP 頁面是須要能夠直接被瀏覽的,這樣百度搜索引擎才能直接抓取,不然改造 MIP 是沒有意義的。api

接入 MIP 的流程瀏覽器

1. 必須改造 HTML,也就是你必須先要擁有改造好的 MIP 頁面或者整個站點。bash

2.使用 MIP 組件,MIP 頁面上須要的一些功能或者效果只能經過 MIP 組件實現,不能使用自定義 JS 等特效。CSS 能夠自定義。服務器

3.改造後的代碼檢測與預覽,MIP 頁面改造完成後可使用官方提供的 MIP 校驗工具:www.mipengine.org/validator/v… 檢測一下代碼,或者頁面是否符合 MIP 規範。composer

4.提交數據,爲了讓百度更快的發現你的 MIP 頁面,你確定須要主動的去百度站長平臺提交,也能夠同時開發使用百度的主動推送等功能實現自動提交 MIP 頁面。curl

5.查看 MIP 是否上線,若是以上四點你都作完了,那麼你就能夠耐心的等待 MIP 生效,由於 MIP 生效是須要時間的,目前官方也並未給出時間,反正只要等就能夠了,通常會首先經過的網站首頁的 MIP,也就是說你在移動端使用百度搜索你的網站名,若是搜索結果下面域名後面有個淺藍色小閃電標識的圖標,那就說明你的 MIP 已經生效了。工具


PHP推送實例(使用了curl方法):

$urls = array(
    'http://www.example.com/1.html',
    'http://www.example.com/2.html',
);
$api = 'http://data.zz.baidu.com/urls?site=www.test.com&token=2kxoiNIjWNPcWwO8&type=mip';
$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;複製代碼

PHP推送實例(使用guzzle):

首先,要先添加composer包

具體添加composer包的教程查看:github.com/guzzle/guzz…

$client = new Client();

$url = 'http://data.zz.baidu.com/urls?site=m.dog126.com&token=******';
$options = [
    'headers' => ['content-type' => 'text/plain'],
    'body' => "http://m.dog126.com/news_{$article_id}.html",
];
$client->post($url, $options);複製代碼



如何查看推送反饋

您能夠經過推送後返回的狀態碼和字段來判斷數據是否推送成功。
1,狀態碼爲200,表示推送成功,可能返回如下字段:

字段

是否必選

參數類型

說明

success

int

成功推送的url條數

remain

int

當天剩餘的可推送url條數

not_same_site

array

因爲不是本站url而未處理的url列表

not_valid

array

不合法的url列表

成功返回示例:
{
"remain":4999998,
"success":2,
"not_same_site":[],
"not_valid":[]
}

2,狀態碼爲4XX或500,表示推送失敗,返回字段有:

字段

是否必選

類型

說明

error

int

錯誤碼,與狀態碼相同

message

string

錯誤描述


常見的推送失敗返回示例說明:

error

message

含義

400

site error

站點未在站長平臺驗證

empty content

post內容爲空

only 2000 urls are allowed once

每次最多隻能提交2000條連接

over quota

超過每日配額了,超配額後再提交都是無效的

401

token is not valid

token錯誤

404

not found

接口地址填寫錯誤

500

internal error, please try later

服務器偶然異常,一般重試就會成功

相關文章
相關標籤/搜索