探討PHP函數(shù)ip2long轉(zhuǎn)換IP時(shí)數(shù)值太大產(chǎn)生負(fù)數(shù)的解決方法
【造成原因】:Because PHP's integer type is signed, and many IP addresses will result in negative integers.
【解決辦法】:其官方手冊(cè)中提到,可以“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地址' ) );
或者將其先轉(zhuǎn)換為二進(jìn)制然后在轉(zhuǎn)換為十進(jìn)制,bindec( decbin( ip2long( 'IP地址' ) ) );
【測(cè)試】
$strIp = '182.118.0.0';
echo ip2long($strIp); //此時(shí)輸出的-1233780736
echo '<br/>';
echo bindec( decbin( ip2long( $strIp ) ) ); // 輸出3061186560,與MySQL函數(shù)輸出一致~
【注】:
number bindec ( string $binary_string ); //二進(jìn)制轉(zhuǎn)換為十進(jìn)制
string decbin ( int $number ); //十進(jìn)制轉(zhuǎn)換為二進(jìn)制
以上這篇探討PHP函數(shù)ip2long轉(zhuǎn)換IP時(shí)數(shù)值太大產(chǎn)生負(fù)數(shù)的解決方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
apache+codeigniter 通過.htcaccess做動(dòng)態(tài)二級(jí)域名解析
今天將服務(wù)器php版本升到了5.4.4,然后將之前的一個(gè)項(xiàng)目改用apache,動(dòng)態(tài)二級(jí)轉(zhuǎn)向用.htcaccess實(shí)現(xiàn)了動(dòng)態(tài)二級(jí)域名解析,共享一下2012-07-07
PHP實(shí)現(xiàn)多進(jìn)程并行操作的詳解(可做守護(hù)進(jìn)程)
本篇文章是對(duì)PHP實(shí)現(xiàn)多進(jìn)程并行操作進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP實(shí)現(xiàn)字符串翻轉(zhuǎn)功能的方法【遞歸與循環(huán)算法】
這篇文章主要介紹了PHP實(shí)現(xiàn)字符串翻轉(zhuǎn)功能的方法,結(jié)合實(shí)例形式對(duì)比分析了php使用遞歸與循環(huán)算法實(shí)現(xiàn)字符串反轉(zhuǎn)功能的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
手把手教你打印出PDF(關(guān)于fpdf的簡(jiǎn)單應(yīng)用)
本篇文章是對(duì)關(guān)于fpdf的簡(jiǎn)單應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

