summer dreamer

全新的 香港中文版 WordPress 網站!

Note

PHP 判斷字串是否有中文

php-variable-basics

在 PHP 要判斷字串是否有中文,可以用 mb_strlen() 及 strlen() 兩個函式實現。strlen() 會回傳字串的長度,但如果是中文, 日文及韓文等文字,會回傳較長的結果。而 mb_strlen() 則可以加入編碼,例如 UTF-8 及 BIG5 等,讓 PHP 自動判斷字串的長度,只要比對 mb_strlen() 及 strlen() 回傳的字串長度,如果相同,即表示沒有中文字在字串內,如果不相同,那便表示有中、日、韓等亞洲文字存在,例如:

$string = '中文測試';
 
if (mb_strlen($string, "UTF-8") == strlen($string)) {
    echo "沒有中文";
} else {
    echo "有中文";
}

上面 mb_strlen() 設定了字串為 UTF-8 編碼,如果是 BIG5 編碼,則要改成 BIG5, 但這樣很麻煩,只要配合 mb_detect_encoding() 函式,讓 PHP 自動檢查字串的編碼,就不用每次設定不同編碼了:

$string = '中文測試';
 
if (mb_strlen($string, mb_detect_encoding($string)) == strlen($string)) {
    echo "沒有中文";
} else {
    echo "有中文";
}

Comments are Closed

Theme by Anders Norén