我有以下代碼:preg_replace,字符轉義和重音字符。/U工作的一臺服務器上,而不是另一個
preg_replace('/[^\w-]/u','.','Bréánná MÓÚLÍN');
哪個服務器A(PHP 5.3.5)返回:
「Bréánná.Móúlín」(因爲它應該)
然而,在服務器B(PHP 5.2.11),它返回:
「Br..n..M..ln」(不是我想要的話)
我是正確的思想,這是由於在整個編譯過程中是否設置了PCRE_UCP?
如果出現這種情況,有什麼方法可以重寫?
失敗了,有沒有什麼方法可以很容易地用'標準'替換這些字符? (像utf8_decode更廣闊)
有趣的是,我試圖取代非單詞字符(非連字符)與。然而,哪個代碼沒有完成。什麼是\\ pL和\\ pN?我不熟悉它們,所以我不知道如何改變它來做我想做的事。 –
@Toukakoukan:它們通過Unicode屬性指定字符集。請參閱:http://www.php.net/manual/en/regexp.reference.unicode.php –
@Toukakoukan:我發現多字節ereg函數不支持特殊的'\ p {...}'PCRE用於通過Unicode屬性指定字符的語法。看到我更新的答案。 –