首頁 >每日程式設計 >PHP知識 >PHP如何實作中文字串截取無亂碼?(圖文+影片)

PHP如何實作中文字串截取無亂碼?(圖文+影片)

藏色散人
藏色散人原創
2018-10-10 13:49:124752瀏覽

本篇文章主要給大家介紹PHP截取中文字串並且無亂碼的方法詳解。

在我們學習PHP知識的過程中,PHP截取字串應該是一個很常見的字串基礎運算了,想必大家都比較熟悉這方面知識點。

但是有些新手朋友可能遇到過,當截取中英文字串時出現亂碼的情況,其實這個也是非常容易解決的。

首先我們要了解關於中英文佔多少位元組的問題。

ASCII碼:一個中文漢字佔兩個位元組的空間。

UTF-8編碼:一個中文(含繁體)等於三個位元組。

Unicode編碼:一個中文(含繁體)等於兩個位元組。

下面我們就透過幾個簡單的程式碼範例為大家詳細介紹關於PHP截取中英字串且無亂碼的相關知識。

一、關於substr函數截取字串

<?php
echo substr("PHP中文网", 0, 5);

substr:傳回字串的子字串。

substr()中第一個參數表示要截取的字串,第二個參數表示從0位置開始截取,第三個參數表示截取長度。

截取「PHP中文網」前5個字節,結果如下:

PHP如何實作中文字串截取無亂碼?(圖文+影片)

#如圖顯示亂碼,也就是說當我們使用substr函數進行中英文字串截取時,會出現亂碼。

二、關於mb_substr函數截取字串

<?php
echo mb_substr("PHP中文网", 0, 5);

mb_substr:取得部分字串。

截取「PHP中文網」前5個字符,結果如下:

PHP如何實作中文字串截取無亂碼?(圖文+影片)

#如圖截取了前五個字符,並且沒有出現亂碼。

註:mb_substr是根據字元數來執行截取字串。

三、關於mb_strcut函數截取字串

<?php
echo mb_strcut("PHP中文网", 0, 7);

截取「PHP中文網」前7個位元組,結果如下:

PHP如何實作中文字串截取無亂碼?(圖文+影片)

從圖中可以看到,我們要截取7個位元組,但只顯示截取了「PHP」這6個位元組。由於一個漢字等於三個字節,那麼這裡第7個位元組就不會顯示了。

綜上所述,如果大家遇到要截取中文字串並無亂碼的需求時,可以選擇後兩種方法(mb_substr()和mb_strcut())。

本篇就是關於PHP中文字串截取無亂碼的相關知識介紹,希望對需要的朋友有幫助!

想要了解更多PHP知識,可以追蹤PHP中文網PHP影片教學,歡迎大家學習參考。

以上是PHP如何實作中文字串截取無亂碼?(圖文+影片)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn