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中对十六进制字符串处理的问题内容请搜索编程界以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程界!

--结束END--

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

本文链接: https://www.lsjlt.com/news/46.html (转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢

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

    本篇文章由PHP7教程栏目给大家介绍一下关于 php7 中 "0xFFFFFFFF" 和 0xFFFFFFFF 的问题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。具体问题:$t1 = 0x3FFFFFFF & (1 * (0xd5b42e
    阅读数:923 PHP7 十六进制 字符串
  • php十六进制值怎么转换成字符串

    在php中,可以利用hex2bin()函数来将十六进制值转换为字符串,该函数的作用就是把十六进制值转换为ASCII编码的字符值,即字符串,语法为“hex2bin(十六进制值)”;如果转换成功则返回对应字符串,如果失败则返回FALSE。本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑在php中,可以利用hex2bin()函数来将十六进制值转换为字符串。hex2bin()函数可以
    阅读数:685 php php字符串
  • php怎么将十六进制值转换为字符串

    在php中,可以利用hex2bin()函数来将十六进制值转换为字符串,该函数的作用就是把十六进制值转换为ASCII编码的字符值,语法“hex2bin(十六进制值)”。
    阅读数:677 php 十六进制 字符串
  • php中文字符怎么转十六进制

    php中文字符转十六进制的方法:1、创建一个PHP示例文件;2、通过“function hexencode($s){return preg_replace('/(.)/es',"str_pad(...)}”方法将汉字转换为16进制编码即可。
    阅读数:106 php
  • php 文件怎么转十六进制

    php文件转十六进制的方法:1、创建一个PHP示例文件;2、通过“function fileToHex($file){...}”方法将文件内容转为16进制输出即可。
    阅读数:423 php 十六进制
  • php 怎么实现rgb转十六进制

    php实现rgb转十六进制的方法:1、创建一个PHP示例文件;2、通过“function RGBToHex($rgb){...}”方法实现RGB转十六进制即可。
    阅读数:593 php rgb 十六进制
  • php字符串处理函数有哪些

    php中常用的字符串处理函数有strlen()、strpos()、trim()几种1.strlen()函数strlen()函数作用:php中strlen()函数的作用是用于获取字符串的长度。strlen()函数语法:strlen(strin
    阅读数:117 PHP 字符串
  • php7怎么将字符串转为数组

    转换方法:1、用str_split(),语法“str_split(str,length)”;2、用explode(),语法“explode(separator,str,limit)”;3、用强制转换,语法“(array)string”。
    阅读数:705 php 字符串转数组
  • php怎么把二进制转十六进制

    php把二进制转十六进制的方法:1、创建一个PHP示例文件;2、通过bin2hex()函数把ASCII字符的字符串转换为十六进制值。
    阅读数:937 php 二进制 十六进制
  • php怎么实现八进制转换十六进制

    php实现八进制转换十六进制的方法:1、创建一个PHP示例文件;2、通过“base_convert($oct,8,16);”方法把八进制数转换为十六进制数即可。
    阅读数:804 php 八进制 十六进制
  • php怎么将数据转换为十六进制

    转换方法:1、用dechex(),可把十进制转换为十六进制,语法“dechex(十进制值)”;2、用base_convert(),语法“bindec(十进制值,10,16)”;3、用bin2hex(),语法“bin2hex(字符串)”。
    阅读数:537 php 十六进制
  • php怎么将十六进制转换为十进制

    php将十六进制转换为十进制的方法:1、使用hexdec()函数,语法“hexdec("十六进制值")”;2、使用base_convert()函数,语法“base_convert("十六进制值", 16, 10)”。
  • php怎么将十进制转换成十六进制

    php将十进制转换成十六进制的方法:1、使用dechex()函数,语法“dechex($number)”;2、使用base_convert()函数,语法“base_convert($number,10,16)”。
    阅读数:807 php 十进制 十六进制
  • php怎么对字符串求交集

    实现步骤:1、利用str_split()函数将两个字符串都转为字符数组,语法“str_split(字符串)”或“str_split(字符串,1)”,会返回两个字符数组;2、使用array_intersect()函数比较两个字符数组求交集,语法“array_intersect(字符数组1,字符数组2)”,会返回包含相同字符元素的交集数组。本教程操作环境:windows7系统、PHP8.1版、DELL
    阅读数:606 php php数组 php字符串
  • php怎么实现对字符串的排序

    实现步骤:1、利用str_split()函数将字符串转为字符数组,语法“str_split(字符串)”;2、使用asort()或arsort()函数来对字符数组进行升序排序或降序排序,语法“asort(字符数组)”或“arsort(字符数组)”;3、使用implode()函数将排序后的字符数组转回字符串,语法“implode(排序后字符数组)”。前端(vue)入门到精通课程:进入学习本教程操作环境:
    阅读数:432 php php数组 php字符串
  • php怎么将八进制转为字符串

    转换方法:1、使用base_convert()函数将8进制转为16进制,语法“base_convert(八进制字符串,8,16)”;2、使用hex2bin()函数将16进制转为字符串,语法“hex2bin(16进制值)”。
    阅读数:640 php 八进制 字符串
  • php怎么将数据转为16进制字符串

    3种转换方法:1、使用dechex()函数,可以把十进制数转换为十六进制字符串,语法“dechex(指定数据值);”。2、使用base_convert()函数,可以将任意进制值转换为十六进制字符串,语法“base_convert(数据值,原进制,16);”。3、使用bin2hex()函数,可以把ASCII字符的字符串转换为十六进制字符串,语法“bin2hex(数据值)”。本教程操作环境:window
    阅读数:128 php php字符串
  • php怎么将二进制转为16进制字符串

    php将二进制转为16进制字符串的方法:1、利用base_convert()函数,语法“base_convert(二进制数,2,16)”;2、利用bindec()和dechex()函数,语法“dechex(bindec(二进制数))”。
  • php怎么将16进制字符串转为数字

    php将16进制字符串转为数字的方法:1、使用hexdec()函数,语法“hexdec(十六进制字符串)”;2、使用base_convert()函数,语法“bindec(十六进制字符串, 16, 10)”。
  • php怎么将二进制转为字符串

    PHP将二进制转为字符串的步骤:1、利用base_convert()函数将二进制转为16进制值,语法“base_convert(二进制值,2,16)”;2、利用hex2bin()函数将16进制值转为字符串即可,语法“hex2bin(16进制值)”。本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑在php中,想要将二进制转为字符串,可以借助16进制。实现步骤:步骤1:利用bas
    阅读数:186 php php字符串