PHP7 字符串处理机制修改


Posted in PHP onMarch 09, 2021

一、含有十六进制字符的字符串不再视为数字

含有十六进制字符的字符串不再视为数字,也不再区别对待。比如下面的代码:

var_dump("0x123" == "291");     // bool(false)     (previously true)
var_dump(is_numeric("0x123"));  // bool(false)     (previously true)
var_dump("0xe" + "0x1");        // int(0)          (previously 16)
var_dump(substr("foo", "0x1")); // string(3) "foo" (previously "oo")
// Notice: A non well formed numeric value encountered

可以使用filter_var函数来检查一个字符串是否包含十六进制字符或者是否可以转成一个整型

$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)

 

二、\u{后面如果包含非法字符会报错

双引号和heredocs语法里面增加了unicode 码点转义语法,“\u{”后面必须是utf-8字符。如果是非utf-8字符,会报错:

$str = "\u{xyz}"; // Fatal error: Invalid UTF-8 codepoint escape sequence

可以通过对第一个\进行转义来避免这种错误。

 $str = "\\u{xyz}"; // Works fine

“\u”后面如果没有{,则没有影响:

$str = "\u202e"; // Works fine

PHP IntlChar()

PHP 7 通过 intl 扩展来支持国际化 (i18n) 和本地化 (l10n) 。此扩展仅仅是对 ICU 库的基础包装,并提供了和 ICU 库类似的方法和特性。

PHP 7 通过新的 IntlChar 类暴露出 ICU 中的 Unicode 字符特性。这个类自身定义了许多静态方法用于操作多字符集的 unicode 字符。

实例

<?php
printf('%x', IntlChar::CODEPOINT_MAX);
echo IntlChar::charName('@');
var_dump(IntlChar::ispunct('!'));
?>
以上程序执行输出结果为:

10ffff
COMMERCIAL AT
bool(true)

 

PHP 相关文章推荐
php抓即时股票信息
Oct 09 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
Dec 29 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
两种设置php载入页面时编码的方法
Jul 29 PHP
php修改文件上传限制方法汇总
Apr 07 PHP
php计算税后工资的方法
Jul 28 PHP
php $_SESSION会员登录实例分享
Jan 19 PHP
PHP基本语法实例总结
Sep 09 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
Apr 05 PHP
PHP7 整型处理机制修改
Mar 09 #PHP
PHP7 参数处理机制修改
Mar 09 #PHP
PHP7 foreach() 函数修改
Mar 09 #PHP
PHP7 list() 函数修改
Mar 09 #PHP
PHP7变量处理机制修改
Mar 09 #PHP
PHP7新特性
Mar 09 #PHP
Yii 实现数据加密和解密
Mar 09 #PHP
You might like
PHP读MYSQL中文乱码的解决方法
2006/12/17 PHP
PHP基本语法总结
2014/09/06 PHP
微信自定义分享php代码分析
2016/11/24 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
Python文件夹与文件的操作实现代码
2014/07/13 Python
Python制作CSDN免积分下载器
2015/03/10 Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
Python切换pip安装源的方法详解
2016/11/18 Python
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
Django admin美化插件suit使用示例
2017/12/12 Python
对pandas中Series的map函数详解
2018/07/25 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
python使用for...else跳出双层嵌套循环的方法实例
2020/05/17 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
2014年学校领导班子对照检查材料
2014/09/19 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
Python3的进程和线程你了解吗
2022/03/16 Python
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫