PHP:如何过滤不可见的ASCII字符?

时间:2012-03-02 00:19:50

标签: php string utf-8 internationalization filter

有人知道从PHP中的字符串过滤不可见和稀有字符的好方法吗?

我正处于从网站解析新闻文章文本的情况,我正在进行一系列“规范化”,例如删除双新行,剥离标记等。问题是我偶然发现了一些奇怪的隐形字符,当我打电话给ord()时我得到194和160 ......他们不属于那里。事情是这些字符出现在新段落之间,所以当文本被渲染时,似乎有一个双重新行,因为有两个段落之间有一个不可见的字符。

除此之外,如果我能轻松过滤任何东西,除了拉丁语,西里尔语,数字和常见字符,如*,(,%等等)我仍然会很好。我可以用所有这些来制作地图并替换其余的,但是是最简单,最快速的方法吗?

1 个答案:

答案 0 :(得分:0)

文章和我的脚本都在相同的“语言环境”或其他任何名称 - 它使用带有西里尔字符的windows-1251,解析是正确的,但海报设法在输入新闻时插入一个奇怪的字符制品

我已经制作了一个preg_replace正则表达式,除了字符,数字和一些常用符号之外的其他内容,它对我有效。

@phihag这篇文章很有意思,但没有回答我的问题,只是告诉我没有正确地问我,让我感到愚蠢。