2011-05-06 84 views
2

我有一些代碼,通過HTML文件解析和我碰到包含此字符內,其搞砸了解析頁面跌跌撞撞: 「問題解析HTML文件

當我執行下面的代碼,$ LEN被賦值爲3.

$test = "「"; 
$len = strlen($test); 

我懷疑這個字符可能是unicode。

現在我通過用一個標準的雙引號取代捲曲雙引號來解決這個問題。但是我擔心可能包含類似字符的其他文件,並且我不希望爲每個單獨的實例替換函數。

我該如何讓PHP將其視爲單個字符?

回答

1

PHP的標準字符串處理函數不能識別多字節,他們愚蠢地計算字符串中的字節數。

如果您安裝了multibyte extension,那麼您正在尋找mb_strlen()

例如,如果你的數據是UTF-8:

$test = "「"; 
$len = mb_strlen($test, "UTF-8");