但我裝在Firefox工具欄的擴展插件SearchStatus " /> 欧美日韩一区综合,国产伦子伦对白在线播放观看,国模私拍视频在线播放

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

Google PR查詢接口checksum新算法第1/2頁

取而代之的是一大段“In your email, please send us the entire code displayed below”之類的Google terms_of_service錯誤提示信息。看來是原先的接口已經失效了。

但我裝在Firefox工具欄的擴展插件SearchStatus仍然能夠正常解析出每個受訪頁的PR值,找到 SearchStatus 的插件包解開來看源碼,果然是使用了不一樣的驗證碼生成算法,在原先的 checksum 生成之后,還需要再進行一次計算,兩次演算之后得到的才是正確的ch參數。

于是拿現成的js代碼改造一番之后,新的php版本的 Google PageRank 查詢接口方法就出來了。經過本地測試之后,誰想傳到服務器之后又出現了該死的 terms_of_service 錯誤提示。把checksum的計算過程一步步打出來,發現經過了幾次右位移之后本地和服務器上的數字就不一樣了。這才想到服務器是64位機,32位系統下位移之后應該被cut掉的bit在那里就活得好好的。加了個 trunkbitForce32bit 方法,對所有算術運算之后的數值進行高位屏蔽,算是搞定了64位系統下的多余位問題。結果拿到32位Linux環境下跑又不兼容了,原因是php在進行算術處理出現溢出時,會自動嘗試將int轉為float。當發生的是負數溢出時,這一操作在Windows下能正確保留精度,但在Linux下就有問題了。

下面這段代碼:

$a = -4294967295;
echo dechex($a)."<br />/n";
if ( $a < 0 ) $a += 4294967296;
echo dechex($a)."<br />/n";

第一個echo在Windows下能夠正確輸出該負數低32位的補碼,而在32位Linux機上輸出的則是int類型所能表示的最大負數0x80000000了。只有通過取巧的方式給這個溢出的大負數加上一個超出整數范圍的大整數來抵消掉溢出的部分,才能復原低32位應該有的樣子。

使用這些非常規手段,終于炮制出這個更新版的兼容Linux32/Linux64/Windows的Google PR值查詢接口的php腳本實現(含完整代碼)。

php技術Google PR查詢接口checksum新算法第1/2頁,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 枣阳市| 西安市| 桐梓县| 贵南县| 永仁县| 修水县| 华安县| 封丘县| 通道| 当雄县| 临潭县| 泗洪县| 西城区| 宜州市| 黄梅县| 邯郸县| 巩义市| 陕西省| 乌兰浩特市| 吉林市| 宣化县| 石城县| 沙田区| 芮城县| 隆回县| 邵阳市| 察隅县| 高碑店市| 开封县| 轮台县| 灵台县| 兴业县| 固原市| 黄山市| 门源| 新津县| 桃园市| 山阴县| 新蔡县| 正宁县| 历史|