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,js双版本
Sep 25 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
Feb 18 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
Jul 01 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
Nov 09 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
php合并数组并保留键值的实现方法
Mar 12 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 29 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传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
让您的菜单不离网站
2006/10/03 Javascript
javascript 控制弹出窗口
2007/04/10 Javascript
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
Python实现将xml导入至excel
2015/11/20 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
夜大毕业生自我鉴定
2013/10/31 职场文书
工作分析计划书
2014/04/30 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
党性教育心得体会
2014/09/03 职场文书
个人合作协议范本
2015/08/06 职场文书
德生2P3收音机开箱评测
2022/04/30 无线电
ant design charts 获取后端接口数据展示
2022/05/25 Javascript