欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2009年01月10日 21:45:43   作者:  
前些日子一篇N久之前的老文忽然成了被閱讀的熱點(diǎn),檢查之后才發(fā)現(xiàn)自己使用那段代碼來做pr查詢的頁面已經(jīng)不能正常得到URL的Page Rank值了
取而代之的是一大段“In your email, please send us the entire code displayed below”之類的Google terms_of_service錯誤提示信息??磥硎窃鹊慕涌谝呀?jīng)失效了。

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

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

下面這段代碼:

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

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

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

相關(guān)文章

  • php生成數(shù)組的使用示例 php全組合算法

    php生成數(shù)組的使用示例 php全組合算法

    要求實(shí)現(xiàn)一個7個元素的數(shù)組,取出這個數(shù)組中的5個元素,生成新的數(shù)組,這些數(shù)組是唯一的
    2014-01-01
  • TP5框架實(shí)現(xiàn)簽到功能的方法分析

    TP5框架實(shí)現(xiàn)簽到功能的方法分析

    這篇文章主要介紹了TP5框架實(shí)現(xiàn)簽到功能的方法,結(jié)合實(shí)例形式分析了TP5框架實(shí)現(xiàn)簽到功能相關(guān)數(shù)據(jù)表建立、以及數(shù)據(jù)的查詢、判斷、寫入等相關(guān)操作技巧,需要的朋友可以參考下
    2020-04-04
  • 在Laravel5中正確設(shè)置文件權(quán)限的方法

    在Laravel5中正確設(shè)置文件權(quán)限的方法

    這篇文章主要給大家介紹了關(guān)于如何在Laravel5中正確設(shè)置文件權(quán)限的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Laravel5具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Thinkphp5框架ajax接口實(shí)現(xiàn)方法分析

    Thinkphp5框架ajax接口實(shí)現(xiàn)方法分析

    這篇文章主要介紹了Thinkphp5框架ajax接口實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了thinkPHP5 ajax交互相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • thinkphp整合微信支付代碼分享

    thinkphp整合微信支付代碼分享

    這篇文章主要為大家分享了thinkphp整合微信支付代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • php利用ob_start()清除輸出和選擇性輸出的方法

    php利用ob_start()清除輸出和選擇性輸出的方法

    下面小編就為大家分享一篇php利用ob_start()清除輸出和選擇性輸出的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • php使用多個進(jìn)程同時控制文件讀寫示例

    php使用多個進(jìn)程同時控制文件讀寫示例

    這篇文章主要介紹了php使用多個進(jìn)程同時控制文件讀寫示例,需要的朋友可以參考下
    2014-02-02
  • Yii框架關(guān)聯(lián)查詢with用法分析

    Yii框架關(guān)聯(lián)查詢with用法分析

    這篇文章主要介紹了Yii框架關(guān)聯(lián)查詢with用法,以實(shí)例形式較為詳細(xì)的分析了yii支持的四種類型關(guān)系的具體用法,是使用yii框架進(jìn)行關(guān)聯(lián)查詢時非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12
  • thinkPHP自定義類實(shí)現(xiàn)方法詳解

    thinkPHP自定義類實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了thinkPHP自定義類實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了thinkPHP自定義模型類的定義與使用技巧,需要的朋友可以參考下
    2016-11-11
  • PHP語言對接抖音快手小紅書視頻/圖片去水印API接口源碼

    PHP語言對接抖音快手小紅書視頻/圖片去水印API接口源碼

    這篇文章主要介紹了PHP語言對接抖音快手小紅書視頻/圖片去水印API接口源碼,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08

最新評論