PHP7中对十六进制字符串处理的问题详解
本篇文章由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 中 "0xFFFFFFFF" 和 0xFFFFFFFF 的问题.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 具体问题: $t1 = 0x3FFFFFFF & (1 * (0xd5b42e11)); $t2 = 0x3FFFFFFF & (1 * ("0xd5b42e11")); var_dump($t1,$t2); 以上代码在 php7(不含)以下平台的值为: int(36
-
JS中对象与字符串的互相转换详解
在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON.parse方法在遇到不可解析的字符串时,会抛出SyntaxError异常. 即:JSON.parse(text, reviver),This method parses a JSON text to produce an object or array. t can throw a SyntaxE
-
在php7中MongoDB实现模糊查询的方法详解
前言 在实际开发中, 有不少的场景需要使用到模糊查询, MongoDB shell 模糊查询很简单: db.collection.find({'_id': /^5101/}) 上面这句就是查询_id以'5101'开始的内容. 在老的MogoDB中模糊查询挺简单的,这里简单记录下模糊查询的操作方式: 命令行下: db.letv_logs.find({"ctime":/uname?/i}); php操作 $query=array("name"=>new Mongo
-
PHP7.1中使用openssl替换mcrypt的实例详解
在php开发中,使用mcrypt相关函数可以很方便地进行AES加.解密操作,但是PHP7.1中废弃了mcrypt扩展,所以必需寻找另一种实现.在迁移手册中已经指出了用openssl代替mcrypt,但未给出具体示例.网上有很多示例,可以替换大部分场景,但对于其中细节却并未说明.同样,简单地使用网上示例在某种代码场景下有可能导致代码替换前后的兼容问题,以下则来谈谈具体代码及原因. 首先我们直接给出替换的代码,再从代码中分析问题.(本文中分析的算法是AES-128-CBC) 替换示例 示例会展示两种
-
Go语言中的字符串处理方法示例详解
1 概述 字符串,string,一串固定长度的字符连接起来的字符集合.Go语言的字符串是使用UTF-8编码的.UTF-8是Unicode的实现方式之一. Go语言原生支持字符串.使用双引号("")或反引号(``)定义. 双引号:"", 用于单行字符串. 反引号:``,用于定义多行字符串,内部会原样解析. 示例: // 单行 "心有猛虎,细嗅蔷薇" // 多行 ` 大风歌 大风起兮云飞扬. 威加海内兮归故乡. 安得猛士兮守四方! ` 字符串支持转义
-
PHP中filter函数校验数据的方法详解
介绍PHP中filter函数校验数据的方法详解,PHP过滤器包含两种类型:Validation用来验证验证项是否合法 .Sanitization用来格式化被验证的项目,因此它可能会修改验证项的值,将不合法的字符删除. input_filters_list() 用来列出当前系统所支持的所有过滤器. 复制代码 代码如下: <?php foreach(filter_list() as $id => $filter) { echo $filter.' '.filter_id($filter).
-
java 中 String format 和Math类实例详解
java 中 String format 和Math类实例详解 java字符串格式化输出 @Test public void test() { // TODO Auto-generated method stub //可用printf(); System.out.println(String.format("I am %s", "jj")); //%s字符串 System.out.println(String.format("首字母是 %c",
-
python 函数中的内置函数及用法详解
今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是整数或浮点数等. print(abs(-18)) print(abs(0.15)) result: 18 0.15 2.all(iterable) 如果iterable的所有元素不为0.''.False或者iterable为空,all(iterable)返回True,否则返回False. print(all(['a','b',
-
Python 中的函数装饰器和闭包详解
函数装饰器可以被用于增强方法的某些行为,如果想自己实现装饰器,则必须了解闭包的概念. 装饰器的基本概念 装饰器是一个可调用对象,它的参数是另一个函数,称为被装饰函数.装饰器可以修改这个函数再将其返回,也可以将其替换为另一个函数或者可调用对象. 例如:有个名为 decorate 的装饰器: @decorate def target(): print('running target()') 上述代码的写法和以下写法的效果是一样的: def target(): print('running targe
-
C语言实现十六进制转换为十进制的方法详解
目录 题目描述 补充知识 优化算法 补充办法 题目描述 输入一个十六进制数字串,将其转换成为对应的整数并输出转换结果,遇到非十六进制数字或字符串结束符('\0')结束转换. 注意: 输入的字符串的长度不会超过100:转换后的值不会超出int类型的范围. 1.测试输入:55 //程序的输入不会有十六进制的前缀 预期输出:85 2.测试输入:f1r2 //程序的输入不会有十六进制的前缀 预期输出:241 补充知识 十六进制转换为十进制的做法: 算法分析 #include<stdio.h> #inc
随机推荐
- 用ajax实现读博客rss示例代码
- 值得收藏的正则表达式大全
- 聊聊springmvc中controller的方法的参数注解方式
- javaWeb 四大域对象详细介绍
- js动态添加onclick事件可传参数与不传参数
- javascript检测(控制 )上传文件大小
- JS实现拖动滚动条评分的效果代码分享
- asp.net 更改gridview pageSize的方法
- PHP 常用函数库和一些实用小技巧
- thinkPHP5.0框架URL访问方法详解
- 浅谈beego默认处理静态文件性能低下的问题
- 浅谈Android Studio3.0更新之路(遇坑必入)
- Node.js检测端口(port)是否被占用的简单示例
- 动态生成js类的实现方法
- 关于预加载InstantClick的问题解决方法
- pycharm 使用心得(六)进行简单的数据库管理
- 浅谈sql连接查询的区别 inner,left,right,full
- 微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
- 深入java线程池的使用详解
- 浅析jquery的作用与优势