PHP 中的substr函數定義如下:
substr(string $string, int $start, ?int $length = null): string
$string :要截取的字符串。
$start :起始位置,0 表示字符串的第一個字符。
$length :截取的長度,如果不指定,則從起始位置截取到字符串末尾。
假設你要從字符串$str中提取前N 個字符,代碼如下:
$str = "這是一個測試字符串";
$n = 5;
$substring = substr($str, 0, $n);
echo $substring;
這段代碼會輸出字符串的前5 個字符。
substr函數雖然簡單,但在處理多字節字符(如中文、日文、韓文等)時,可能會出現亂碼或者截斷半個字符的情況。這是因為substr是基於字節操作的,而不是基於字符操作。
如果字符串是UTF-8 編碼,推薦使用mb_substr函數,它是多字節安全的:
$str = "這是一個測試字符串";
$n = 5;
$substring = mb_substr($str, 0, $n, "UTF-8");
echo $substring;
mb_substr能正確處理多字節字符,保證截取時不會截斷字符。
<?php
$str = "歡迎訪問 gitbox.net 的網站,這裡有豐富的資源。";
$n = 10;
// 截取字符串前10個字符
$substring = mb_substr($str, 0, $n, "UTF-8");
// 輸出到網頁
echo "<p>內容摘要:{$substring}...</p>";
?>
使用substr截取字符串時,如果是英文或單字節編碼字符串,直接使用substr($str, 0, $n)即可。
處理多字節字符串時,應使用mb_substr($str, 0, $n, "UTF-8") ,確保不會截斷字符導致亂碼。
在網頁輸出時,結合HTML 標籤安全顯示截取結果。