探討PHP函數(shù)ip2long轉換IP時數(shù)值太大產生負數(shù)的解決方法
【造成原因】:Because PHP's integer type is signed, and many IP addresses will result in negative integers.
【解決辦法】:其官方手冊中提到,可以“you need to use the "%u" formatter of sprintf() or printf() to get the string representation of the unsigned IP address”
即,printf( '%u', ip2long( 'IP地址' ) );
或者將其先轉換為二進制然后在轉換為十進制,bindec( decbin( ip2long( 'IP地址' ) ) );
【測試】
$strIp = '182.118.0.0';
echo ip2long($strIp); //此時輸出的-1233780736
echo '<br/>';
echo bindec( decbin( ip2long( $strIp ) ) ); // 輸出3061186560,與MySQL函數(shù)輸出一致~
【注】:
number bindec ( string $binary_string ); //二進制轉換為十進制
string decbin ( int $number ); //十進制轉換為二進制
以上這篇探討PHP函數(shù)ip2long轉換IP時數(shù)值太大產生負數(shù)的解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決PHP4.0 和 PHP5.0類構造函數(shù)的兼容問題
以下是對解決PHP4.0和PHP5.0類構造函數(shù)兼容問題的方法進行了詳細的分析介紹,需要的朋友可以過來參考一下2013-08-08php中&&和||邏輯運算符的高級簡寫(縮寫條件)用法由淺入深講解
php中if進行多條件判斷時,使用邏輯運算符&&和||(and和or),這樣的寫法很常見也很熟悉。&&和||還有高級簡寫(縮寫條件)用法,比如單獨一行中“條件A||條件B”進行了什么操作?本文將由淺入深詳細講解php中&&和||邏輯運算符的高級簡寫(縮寫條件)用法。2022-11-11如何使用SublimeText3配置 PHP IDE環(huán)境
這篇文章主要介紹了如何使用SublimeText3配置 PHP IDE環(huán)境,并使用Xdebug進行調試,喜歡使用SublimeText的同學,可以參考下2021-04-04PDO版本問題 Invalid parameter number: no parameters were bound
發(fā)現(xiàn)在客戶的某個PHP版本下,執(zhí)行某類操作的時候,總是會報如下錯誤 Invalid parameter number: no parameters were bound,經google,發(fā)現(xiàn)是php版本過低導致2013-01-01深入理解PHP幾個算法:PHP冒泡、PHP二分法、PHP求素數(shù)、PHP乘法表
本篇文章是對PHP冒泡、PHP二分法、PHP求素數(shù)、PHP乘法表進行了詳細的分析介紹,需要的朋友參考下2013-06-06