Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:使用溢出将大整数从字符串转换为int_Php_Int_Unsigned_Ipv4 - Fatal编程技术网

PHP:使用溢出将大整数从字符串转换为int

PHP:使用溢出将大整数从字符串转换为int,php,int,unsigned,ipv4,Php,Int,Unsigned,Ipv4,PHP不支持无符号整数有没有办法将无符号整数的字符串表示形式转换为带溢出的有符号整数? 示例: 在32位系统上,PHP可以存储int值,最快、最简单的方法是让RDBMS以某种方式存储int值 您可以通过检查预定义常量PHP\u INT\u size的值来找出PHP中整数的大小。如果在32位系统上运行,则为4,如果在64位系统上运行,则为8 我建议您使用例如 $smallIntegers = intval(PHP_INT_SIZE == 4); 然后在查询中使用如下内容: SELECT

PHP不支持无符号整数有没有办法将无符号整数的字符串表示形式转换为带溢出的有符号整数?

示例:

在32位系统上,PHP可以存储int值,最快、最简单的方法是让RDBMS以某种方式存储int值

您可以通过检查预定义常量
PHP\u INT\u size
的值来找出PHP中整数的大小。如果在32位系统上运行,则为4,如果在64位系统上运行,则为8

我建议您使用例如

$smallIntegers = intval(PHP_INT_SIZE == 4);
然后在查询中使用如下内容:

SELECT
    ...,
    CASE
        WHEN :smallIntegers: = 1 AND IPAddress > 2147483647 THEN IPAddress - 4294967296
        ELSE IPAddress
    END AS IPAddress,
    ...
...

最快、最简单的方法是让您的RDBMS以某种方式完成这项工作

您可以通过检查预定义常量
PHP\u INT\u size
的值来找出PHP中整数的大小。如果在32位系统上运行,则为4,如果在64位系统上运行,则为8

我建议您使用例如

$smallIntegers = intval(PHP_INT_SIZE == 4);
然后在查询中使用如下内容:

SELECT
    ...,
    CASE
        WHEN :smallIntegers: = 1 AND IPAddress > 2147483647 THEN IPAddress - 4294967296
        ELSE IPAddress
    END AS IPAddress,
    ...
...

这里是解决方法

<?php
    $unsignedString = "3000000000";
    echo "unsigned string: ".$unsignedString."<br />";
    $signedInt = intval(doubleval($unsignedString));
    echo "signed int: ".$signedInt."<br />";
?>

以下是解决方法

<?php
    $unsignedString = "3000000000";
    echo "unsigned string: ".$unsignedString."<br />";
    $signedInt = intval(doubleval($unsignedString));
    echo "signed int: ".$signedInt."<br />";
?>

能否将IP地址存储在一个整数数组中,将IP的一段连接到数组的每个部分,使最大值最终为255存储在一个整数中:

$ipAddress = array(127, 0, 0, 1);

能否将IP地址存储在一个整数数组中,将IP的一段存储到数组的每个部分,这样最大值将最终为255存储在任何一个整数中:

$ipAddress = array(127, 0, 0, 1);

是的,假设我将始终控制部署应用程序的环境。我不知道是否总是这样。是的,假设我将始终控制应用程序部署的环境。我不知道是否总是这样。正如你所说,这可能会更快,但我想用PHP来保存我的架构。正如你所说,这可能会更快,但是我想用PHP来保存我的架构。我恐怕不会——这会有点违背对地址使用位操作的目的。我恐怕不会——这会有点违背对地址使用位操作的目的。