1. 云栖社区>
  2. PHP教程>
  3. 正文

记录一些函数用法

作者:用户 来源:互联网 时间:2017-12-01 14:54:56

函数记录用法一些

记录一些函数用法 - 摘要: 本文讲的是记录一些函数用法, 高手们照旧忽略。想弄个全天朝IP段数据库,找了个今天最新更新的国内所有运营商IP段,copy到文件,用文件函数,字符串函数把玩下。分割出startIp和endIp这样格式写入.txt文件,直接用phpmyadmin导入.csv文件的形式导


高手们照旧忽略。
想弄个全天朝IP段数据库,找了个今天最新更新的国内所有运营商IP段,copy到文件,用文件函数,字符串函数把玩下。分割出startIp和endIp这样格式写入.txt文件,直接用phpmyadmin导入.csv文件的形式导入。(生命在于折腾,也许你们觉得我傻X,直接下载人家弄好的导入不就可以,做自己的菜鸟,让别人去说吧)
当然用到了ip2long()函数把字符串转为整型数据,但这函数会有出现负值的情况

sprintf("%u",ip2long($ip);
这样就能解决了负值问题,而且用long2ip也能还原成IP地址。
偷懒,没去研究怎么实现。那就记录下实现的代码吧。
function ip2int($ip){
//我们先把ip分为四段,$ip1,$ip2,$ip3,$ip4
list($ip1,$ip2,$ip3,$ip4)=explode(".",$ip);
//然后第一段乘以256的三次方,第二段乘以256的平方,第三段乘以256
//这即是我们得到的值
return $ip1*pow(256,3)+$ip2*pow(256,2)+$ip3*256+$ip4;
}
第二种是位运算
function ip2int($ip){
list($ip1,$ip2,$ip3,$ip4)=explode(".",$ip);
return ($ip1<<24)|($ip2<<16)|($ip3<<8)|($ip4);
}

以上是记录一些函数用法的全部内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有其他相关内容,欢迎继续使用右上角搜索按钮进行搜索函数 , 记录 , 用法 一些 ,以便于您获取更多的相关知识。