本篇文章主要給大家介紹PHP截取中文字串並且無亂碼的方法詳解。
在我們學習PHP知識的過程中,PHP截取字串應該是一個很常見的字串基礎運算了,想必大家都比較熟悉這方面知識點。
但是有些新手朋友可能遇到過,當截取中英文字串時出現亂碼的情況,其實這個也是非常容易解決的。
首先我們要了解關於中英文佔多少位元組的問題。
ASCII碼:一個中文漢字佔兩個位元組的空間。
UTF-8編碼:一個中文(含繁體)等於三個位元組。
Unicode編碼:一個中文(含繁體)等於兩個位元組。
下面我們就透過幾個簡單的程式碼範例為大家詳細介紹關於PHP截取中英字串且無亂碼的相關知識。
一、關於substr函數截取字串
<?php echo substr("PHP中文网", 0, 5);
substr:傳回字串的子字串。
substr()中第一個參數表示要截取的字串,第二個參數表示從0位置開始截取,第三個參數表示截取長度。
截取「PHP中文網」前5個字節,結果如下:
#如圖顯示亂碼,也就是說當我們使用substr函數進行中英文字串截取時,會出現亂碼。
二、關於mb_substr函數截取字串
<?php echo mb_substr("PHP中文网", 0, 5);
mb_substr:取得部分字串。
截取「PHP中文網」前5個字符,結果如下:
#如圖截取了前五個字符,並且沒有出現亂碼。
註:mb_substr是根據字元數來執行截取字串。
三、關於mb_strcut函數截取字串
<?php echo mb_strcut("PHP中文网", 0, 7);
截取「PHP中文網」前7個位元組,結果如下:
從圖中可以看到,我們要截取7個位元組,但只顯示截取了「PHP」這6個位元組。由於一個漢字等於三個字節,那麼這裡第7個位元組就不會顯示了。
綜上所述,如果大家遇到要截取中文字串並無亂碼的需求時,可以選擇後兩種方法(mb_substr()和mb_strcut())。
本篇就是關於PHP中文字串截取無亂碼的相關知識介紹,希望對需要的朋友有幫助!
想要了解更多PHP知識,可以追蹤PHP中文網PHP影片教學,歡迎大家學習參考。
以上是PHP如何實作中文字串截取無亂碼?(圖文+影片)的詳細內容。更多資訊請關注PHP中文網其他相關文章!