在公司遇到兩個php小問題,特寫下來,以便日後看到能解決.
sleep(10);如果不放在for循環裡面在流程下面將會繼續執行,而不會等待.
mb_strlen(val,"utf-8");
還是有關中文的問題。PHP內置的字符串長度函數strlen無法正確處理中文字符串,它得到的只是字符串所占的
字節數。對於GB2312的中文編碼,strlen得到的值是漢字個數的2倍,而對於UTF-8編碼的中文,就是3倍的差異
了(在UTF-8編碼下,一個漢字占3個字節)。
采用mb_strlen函數可以較好地解決這個問題。mb_strlen的用法和strlen類似,只不過它有第二個可選參數用於
指定字符編碼。例如得到UTF-8的字符串$str長度,可以用mb_strlen($str,UTF-8)。如果省略第二個參數,則
會使用PHP的內部編碼。內部編碼可以通過mb_internal_encoding()函數得到。需要注意的是,mb_strlen並不是
PHP核心函數,使用前需要確保在php.ini中加載了php_mbstring.dll,即確保“extension=php_mbstring.dll”
這一行存在並且沒有被注釋掉,否則會出現未定義函數的問題。