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的ASP防火墙
Oct 09 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
Yii调试SQL的常用方法
Jul 09 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
Jul 28 PHP
php加密解密字符串示例
Oct 13 PHP
php基于curl主动推送最新内容给百度收录的方法
Oct 14 PHP
PHP处理bmp格式图片的方法分析
Jul 04 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 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
德劲1102收音机的打理维修案例
2021/03/02 无线电
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
JS按位非(~)运算符与~~运算符的理解分析
2011/07/31 Javascript
js中更短的 Array 类型转换
2011/10/30 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
Python 迭代器与生成器实例详解
2017/05/18 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
Python devel安装失败问题解决方案
2020/06/09 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
师范院校学生自荐信范文
2013/12/27 职场文书
双创工作实施方案
2014/03/26 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
毕业生见习报告总结
2014/11/08 职场文书
个人工作表现自我评价
2015/03/06 职场文书
怎样写好工作计划
2019/04/10 职场文书
人力资源部工作计划
2019/05/14 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python