我有一些代碼,通過HTML文件解析和我碰到包含此字符內,其搞砸了解析頁面跌跌撞撞: 「問題解析HTML文件
當我執行下面的代碼,$ LEN被賦值爲3.
$test = "「";
$len = strlen($test);
我懷疑這個字符可能是unicode。
現在我通過用一個標準的雙引號取代捲曲雙引號來解決這個問題。但是我擔心可能包含類似字符的其他文件,並且我不希望爲每個單獨的實例替換函數。
我該如何讓PHP將其視爲單個字符?
我有一些代碼,通過HTML文件解析和我碰到包含此字符內,其搞砸了解析頁面跌跌撞撞: 「問題解析HTML文件
當我執行下面的代碼,$ LEN被賦值爲3.
$test = "「";
$len = strlen($test);
我懷疑這個字符可能是unicode。
現在我通過用一個標準的雙引號取代捲曲雙引號來解決這個問題。但是我擔心可能包含類似字符的其他文件,並且我不希望爲每個單獨的實例替換函數。
我該如何讓PHP將其視爲單個字符?
PHP的標準字符串處理函數不能識別多字節,他們愚蠢地計算字符串中的字節數。
如果您安裝了multibyte extension,那麼您正在尋找mb_strlen()
。
例如,如果你的數據是UTF-8:
$test = "「";
$len = mb_strlen($test, "UTF-8");
對Unicode的使用PHP函數與MB_(多字節)開始:例如:http://php.net/manual/en/function.mb-strlen.php
使用mb_strlen()
,它會處理多字節字符。
您需要使用多字節版本的功能>http://php.net/manual/en/function.mb-strlen.php