ホームページ > バックエンド開発 > PHPチュートリアル > PHP 関数 ip2long が IP_PHP を変換するときに負の数が大きすぎる問題の解決策について説明します。 チュートリアル

PHP 関数 ip2long が IP_PHP を変換するときに負の数が大きすぎる問題の解決策について説明します。 チュートリアル

WBOY
リリース: 2016-07-21 15:08:28
オリジナル
1016 人が閲覧しました

【原因】: PHP の整数型は符号付きであり、多くの IP アドレスが負の整数になるためです。
【解決策】: 公式マニュアルには、「 sprintf() の "%u" フォーマッタを使用する必要がある」と記載されています。 printf() は、署名されていない IP アドレスの文字列表現を取得します
、つまり、printf( '%u', ip2long( 'IP address' ) );
または、最初にバイナリに変換してから変換します10 進数に変換すると、 bindec( decbin( ip2long( 'IP アドレス' ) ) );
【テスト】
$strIp = '182.118.0.0';

echo ip2long($strIp); //このときの出力は -1233780736 です
echo '
';
echo binding( decbin( ip2long( $strIp ) ) ); // 出力は 3061186560 ですMySQL 関数の出力としては一貫しています~

【注意】:
number bindec ( string $binary_string ) // 2進数を10進数に変換します
string decbin ( int $number ); // 10進数を2進数に変換します

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327463.html技術記事 [原因]: PHP の整数型は符号付きであり、多くの IP アドレスが負の整数になるためです。 [解決策]: 公式マニュアルには「...
」と記載されています。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート