PHP 和 MySQL 中ip与int的互相转换(ip转数字/整数)

发布日期:2022-11-18 16:40

我们在设计数据库的字段的数据类型时比如一些特殊的字段,像时间和日期字段如果用datetime或者是timestamp这两种数据类型时候,有事数据插入会报错,主要是这两种数据类型比较小,而我们用php拼接的时候需要转换成这两种数据类型比较麻烦,要么就用string类型的varchar,或者将时间和日期字段转换成int类型就不会出现在插入时报错的问题,今天我们要讲到另外一种特殊字段ip,有些场景需要存ip地址的时候,为了性能的提升可能考虑到要将ip地址转换成的int类型存到数据库中。

长沙网站建设

  优点:不仅在空间上有了节省,也提升了查询的性能。
  缺点:阅读比较困难需要转换之后阅读。

下面就来看下PHP 和MySQL中ip如何和int互相转换:

PHP


$ip = '192.168.142.43';
$long = ip2long($ip);//ip 转 int  3232271915
echo $long."<br>";
echo long2ip($long);//int 转 ip 192.168.142.43

MYSQL


select INET_ATON('192.168.142.43');//3232271915
select INET_NTOA(3232271915);//192.168.142.43

通过结果可以看到PHP和Mysql的转换结果相同,所以可以放心的将ip转换成int类型了。

长沙企业站高端定制

扩展阅读

上面我们讲到ip的int和string类型的互相转换,前面我们提到了日期现在我们来说说如何将日期或者时间字段转换成int

使用strtotime命令,可以实现这个功能。

例子如下:


$dateday = “2013-02-27 12:23:15”;
$intdate = strtotime($dateday);
echo $intdate;

同理:我们如果插入数据库的时间字段是int,我们要转换成时间字段就要用到dete的方法


$dateday =1668758426
$intdate = date("Y-m-d");//转日期
$intdates = date("Y-m-d H:i:s");//转时间,H:大写是24小时制,小写是12小时制
echo $intdate;
echo $intdates;

以上就是php中时间、日期、ip转int的方法,希望对您有帮助,更多网站搭建和开发的教程请关注我们长沙网站开发长沙蒲公英网络

以上信息由长沙网站建设--长沙蒲公英网络收集与整理,禁止用于任何商业行为
-->