如何从PHP中的字符串中删除像█这样的特殊字符

时间:2015-06-02 10:54:08

标签: php preg-replace special-characters

如何从php中的字符串中仅删除此类特殊字符░▒▓█► 我用这个preg_replace('/[\x00-\x1F\x80-\xC0]/u', '',$string);

但我想允许使用特殊字符,例如à,â,',“,用于法语

2 个答案:

答案 0 :(得分:3)

您可以对拉丁字母使用\p{Latin}等unicode字符类,对货币使用\p{Sc},为标点字符使用\p{P}(或更短\pP):

$str = preg_replace('/[^0-9\p{Latin}\pP\p{Sc}@\s]+/u', '', $str);

您可以在PCRE here中找到不同的unicode字符类。 (搜索句子:"支持以下一般类别属性代码"

答案 1 :(得分:1)

因此,您希望使用UTF-8的代码点,但是您希望使用ISO 8859-15的字符编码方案。我想你可以做两次转换字符串:

$text = iconv("ISO-8859-15", "UTF-8", iconv("UTF-8", "ISO-8859-15//IGNORE", $text));
echo $text;