探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法

2015-01-24信息快讯网

本篇文章是对PHP函数ip2long转换IP时数值太大产生负数的解决方法进行了详细的分析介绍,需要的朋友参考下

【造成原因】: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函数输出一致~

【注】:
number bindec ( string $binary_string ); //二进制转换为十进制
string decbin ( int $number ); //十进制转换为二进制

php5.3 不支持 session_register() 此函数已启用的解决方法
session在php5.3中的变化 session_is_registered() is deprecated in
php file_get_contents抓取Gzip网页乱码的三种解决方法
php session劫持和防范的方法
php使用mb_check_encoding检查字符串在指定的编码里是否有效
php ZipArchive压缩函数详解实例
php Session存储到Redis的方法
mac下安装nginx和php
PHP禁止个别IP访问网站
php cURL和Rolling cURL并发方式比较
FireFox浏览器使用Javascript上传大文件
php字符编码转换之gb2312转为utf8
使用淘宝IP库获取用户ip地理位置
php数组转换js数组操作及json_encode的用法详解
php模拟ping命令(php exec函数的使用方法)
php mysql_real_escape_string函数用法与实例教程
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
php多层数组与对象的转换实例代码
php的数组与字符串的转换函数整理汇总
解决PHP超大文件下载,断点续传下载的方法详解
php IP转换整形(ip2long)的详解
PHP 常用数组内部函数(Array Functions)介绍
深入理解require与require_once与include以及include_once的区别
PHP register_shutdown_function函数的深入解析
基于session_unset与session_destroy的区别详解
解析CI即CodeIgniter框架在Nginx下的重写规则
深入探讨:Nginx 502 Bad Gateway错误的解决方法
基于MySQL到MongoDB简易对照表的详解
PHP Error与Logging函数的深入理解
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
php gzip压缩输出的实现方法
Eclipse中php插件安装及Xdebug配置的使用详解
PHP时间戳与日期之间转换的实例介绍
PHP 数组和字符串互相转换实现方法
php中将html中的br换行符转换为文本输入中的换行符
php实现utf-8和GB2312编码相互转换函数代码
©2014-2024 dbsqp.com