2011-06-02 122 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 
相關問題