代わりに、「メールで、以下に表示されているコード全体を送信してください」などの大きな Google サービス利用規約エラー メッセージが表示されます。元のインターフェースが無効になっているようです。
しかし、Firefox ツールバーにインストールした拡張プラグイン SearchStatus は、アクセスした各ページの PR 値を通常どおり解析できます。SearchStatus のプラグイン パッケージを見つけて、ソース コードを確認するために解凍しました。異なる検証コード生成アルゴリズムを使用します。元のチェックサムが生成された後、2 回の計算後に正しい ch パラメーターを取得する必要があります。
それで、既成の JS コードを変換した後、Google PageRank クエリ インターフェース メソッドの新しい PHP バージョンが登場しました。ローカルでテストした後、サーバーに送信しようとすると、ひどいサービス条件エラー メッセージが表示されます。チェックサム計算プロセスを段階的に入力したところ、右シフトを数回行った後で、ローカル コンピューターとサーバー上の数値が異なることがわかりました。そのとき、サーバーは 64 ビット マシンであり、32 ビット システムで移行した後に切り出されるはずのビットがまだそこに健在であることに気づきました。すべての算術演算後に値の上位ビットをマスクするために、trunkbitForce32bit メソッドが追加され、64 ビット システムにおける冗長ビットの問題が解決されます。そのため、32 ビット Linux 環境で実行すると互換性がなくなります。これは、PHP が算術処理中にオーバーフローすると、自動的に int を float に変換しようとするためです。負の数値のオーバーフローが発生した場合、Windows ではこの操作で精度が正しく維持されますが、Linux では問題が発生します。
次のコード:
$a = -4294967295;
echo dechex($a)."
n";
if ( $a < 0 ) $a += 4294967296; ($a)."
n";
最初のエコーは、Windows では負の数の下位 32 ビット補数を正しく出力できますが、32 ビット Linux マシンでは int 型が出力されます。表現できる最大の負の数は 0x80000000 です。オーバーフローを相殺するための難しい方法で、整数の範囲外にある大きな整数をオーバーフローした負の数に追加することによってのみ、下位 32 ビットをあるべき状態に復元することができます。
これらの型破りな手段を使用して、Linux32/Linux64/Windows と互換性のある、Google PR 値クエリ インターフェイスの PHP スクリプト実装 (完全なコードを含む) の更新バージョンを最終的に作成しました。