一尘不染

从字符串中删除非ASCII字符

php

从网站提取数据时出现奇怪的字符:

Â

如何删除不是非扩展ASCII字符的内容?


阅读 369

收藏
2020-05-29

共1个答案

一尘不染

正则表达式替换将是最佳选择。使用$str作为一个例子的字符串,并使用匹配它:print:,这是一个POSIX字符类

$str = 'aAÂ';
$str = preg_replace('/[[:^print:]]/', '', $str); // should be aA

什么:print:是寻找所有可打印字符。相反,:^print:查找所有不可打印的字符。不属于当前字符集的所有字符都将被删除。

注意: 使用此方法之前,必须确保当前字符集为ASCII。POSIX字符类同时支持ASCII和Unicode,并且仅根据当前字符集进行匹配。从PHP
5.6开始,默认字符集为UTF-8。

2020-05-29