PHP的ip2long和long2ip函数的实现原理_PHP教程
程序员文章站
2022-06-07 14:49:15
...
最近要做个十进制数字的可逆转换做邀请码,一直没搞清楚怎么弄的,实在太复杂了,今天弄IP时想到这个可以进行转换,于是研究了下原理:
以上输出的结果为:
主要是自己整理了下:
$ip = '12.34.56.78'; $ips = explode('.', $ip); $result = 0; $result += $ips[0]'; echo bindec(decbin(ip2long($ip))); echo '
'; $str = ''; $str .= intval($result/intval(pow(2, 24))) .'.'; $str .= intval(($result&0x00FFFFFF)/intval(pow(2, 16))) .'.'; $str .= intval(($result&0x0000FFFF)/intval(pow(2, 8))) .'.'; $str .= intval($result&0x000000FF); echo $str; echo '
'; echo long2ip($result);
以上输出的结果为:
203569230 203569230 12.34.56.78 12.34.56.78
这只是实现的一种方法而已,还有其他的办法
我是想用类似的方法,可以直接把一个十进制数字转换为其他十进制数值并可逆,但遇到中间有很多0的数值时发现问题太多了,如 1000100
推荐阅读
-
百度工程师讲PHP函数的实现原理及性能分析(三)
-
php实现的DateDiff和DateAdd时间函数代码分享
-
PHP的ip2long和long2ip函数的实现原理
-
百度工程师讲PHP函数的实现原理及性能分析(三)
-
使用函数递归实现基于php和MySQL的动态树型菜单
-
PHP实现QQ登录的开原理和实现过程
-
PHP接口多继承和tarits实现多继承效果的方法教程详情
-
php的chr和ord函数实现字符加减乘除运算实现代码
-
字符串长度函数strlen和mb_strlen的区别示例介绍,strlenmb_strlen_PHP教程
-
PHP实现的带超时功能get_headers函数,phpget_headers_PHP教程