PHP7中对十六进制字符串处理的问题详解

 更新时间:2022-01-27 14:12:19   作者:佚名   我要评论(0)

本篇文章由PHP7教程栏目给大家介绍一下关于 php7 中 "0xFFFFFFFF" 和 0xFFFFFFFF 的问题。有一定的参考价值,有需要的朋友可以参考一下,希望

本篇文章由PHP7教程栏目给大家介绍一下关于 php7 中 "0xFFFFFFFF" 和 0xFFFFFFFF 的问题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

具体问题:

$t1 = 0x3FFFFFFF & (1 * (0xd5b42e11));
$t2 = 0x3FFFFFFF & (1 * ("0xd5b42e11"));
var_dump($t1,$t2);

以上代码在 php7(不含)以下平台的值为:

int(364129809)
int(364129809)

而在 php7的值为:

int(364129809)
int(0)

请问,在 php7的环境下,应该如何处理 0x.$str 使它同上面值一样呢?

解决办法:

PHP7开始,含十六进制字符串不再被认为是数字

如果非要检测字符串是否含十六进制数字,官方建议的代码是

<?php
$str = "0xffff";
$int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX);
if (false === $int) {
    throw new Exception("Invalid integer!");
}
var_dump($int); // int(65535)
?>

针对上述问题就应该改成

$t1 = 0x3FFFFFFF & (1 * (0xd5b42e11));
$t2 = 0x3FFFFFFF & (1 * (filter_var("0xd5b42e11", FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX)));
var_dump($t1,$t2);

到此这篇关于PHP7中对十六进制字符串处理的问题详解的文章就介绍到这了,更多相关PHP7中对十六进制字符串处理的问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PHP7中对十六进制字符串处理的问题详解

    PHP7中对十六进制字符串处理的问题详解

    本篇文章由PHP7教程栏目给大家介绍一下关于 php7 中 "0xFFFFFFFF" 和 0xFFFFFFFF 的问题。有一定的参考价值,有需要的朋友可以参考一下,希望
    2022-01-27
  • php?redis的scan用法实例分析

    php?redis的scan用法实例分析

    在删除缓存的时候,我们在一些场景下需要批量删除,但不确定具体的key值,可通过匹配的方式进行查询后删除。 但是使用keys会导致redis服务器
    2022-01-27
  • PHP中 empty() 和 isset() 的区别介绍

    PHP中 empty() 和 isset() 的区别介绍

    目录二者共同点二者区别1、对于未设置的变量的判断2、对于 "" (空字符串) 的判断3、对于 0 (作为整数的0) 的判断4、对于 0.0 (作为浮点数的0
    2022-01-27
  • 新版php?study根目录下文件夹无法显示的图文解决方法

    新版php?study根目录下文件夹无法显示的图文解决方法

    ?Options Indexes FollowSymLinks ExecCGI? ? ? ? ? 1? 添加Indexes 2? 删除掉index.html? ? 希望可以帮到大家。? ? ? 到此这篇关于新版php
    2022-01-27
  • PHP实现JWT的Token登录认证

    PHP实现JWT的Token登录认证

    1、JWT简介 JSON Web Token(缩写 JWT),是目前最流行的跨域认证解决方案。 session登录认证方案:用户从客户端传递用户名、密码等信息,服
    2022-01-27
  • php项目接入xxl-job调度系统的示例详解

    php项目接入xxl-job调度系统的示例详解

    目录1.?部署xxl-job调度中心2. 整合xxl-job调度系统2.1 创建执行器项目2.2 新增执行器?2.3 部署执行器项目2.4 新增GLUE模式任务2.5 编写php代
    2022-01-27
  • php判断时间戳是否为今天实例讲解

    php判断时间戳是否为今天实例讲解

    ?本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑 php判断指定时间戳是不是今天的方法 实现思想: 使用date()格式化今天的日期,
    2022-01-27
  • PHP基础用法讲解及phpinfo();演示

    PHP基础用法讲解及phpinfo();演示

    在这个abc.php文件中写入如下代码。 <&#63;php phpinfo(); &#63;> 你将会看到一个网页,网页内容通常,如下图所示: 用中文翻译这句
    2022-01-27
  • PHP7 preg_replace 出错及解决办法

    PHP7 preg_replace 出错及解决办法

    问题描述: PHP7废弃了preg_replace? 原本是中php5中处理url中后面参数替换清除的,代码如下 $url = preg_replace('/([&#63;&])src=[^&]+
    2022-01-27
  • php实现ffmpeg处理视频的实践

    php实现ffmpeg处理视频的实践

    最近有一个项目需要使用ffmpeg处理视频,这里我写了一个demo,方便我们来实现视频操作 ffmpeg操作demo <&#63;php namespace common\helpe
    2022-01-27

最新评论