2011-06-02 82 views
3

我目前使用这个脚本消毒的文本块...串消毒支持特殊字符,如N,A,E,I,O,U,等

function rseo_sanitize($s) { 
    $result = preg_replace("/[^a-zA-Z0-9'-]+/", "", html_entity_decode($s, ENT_QUOTES)); 
    return $result; 
} 

我会喜欢增加对特殊字符集合的支持,如ñ,á,é,í,ó,ú等。

如何将这些(以及较大的西班牙字符集合)集成到preg_replace中?

回答

2

您可以使用/\pL+/u匹配以Unicode所有字母符号。

有西班牙语字母只能在PCRE没有单独的飞机,但你可以尝试:

/[^\p{Latin}0-9'-]+/u 

这包括一切从ISO Latin-1的字符集,我相信。这包括其他欧洲语言,不只是西班牙语。但否则,你将不得不单独列出所需的字母。

0

您应该使用\wu修改

例如,沿着:

/[^\w]+/u 
相关问题