當前位置: 首頁> 最新文章列表> 使用substr 提取PHP 字符串的前N 個字符

使用substr 提取PHP 字符串的前N 個字符

gitbox 2025-05-31

1. substr 函數基礎用法

PHP 中的substr函數定義如下:

 substr(string $string, int $start, ?int $length = null): string
  • $string :要截取的字符串。

  • $start :起始位置,0 表示字符串的第一個字符。

  • $length :截取的長度,如果不指定,則從起始位置截取到字符串末尾。

2. 提取字符串前N 個字符的簡單寫法

假設你要從字符串$str中提取前N 個字符,代碼如下:

 $str = "這是一個測試字符串";
$n = 5;
$substring = substr($str, 0, $n);
echo $substring;

這段代碼會輸出字符串的前5 個字符。

3. 注意多字節字符編碼問題

substr函數雖然簡單,但在處理多字節字符(如中文、日文、韓文等)時,可能會出現亂碼或者截斷半個字符的情況。這是因為substr是基於字節操作的,而不是基於字符操作。

如果字符串是UTF-8 編碼,推薦使用mb_substr函數,它是多字節安全的:

 $str = "這是一個測試字符串";
$n = 5;
$substring = mb_substr($str, 0, $n, "UTF-8");
echo $substring;

mb_substr能正確處理多字節字符,保證截取時不會截斷字符。

4. 結合示例:在網頁中安全輸出前N 個字符

<?php
$str = "歡迎訪問 gitbox.net 的網站,這裡有豐富的資源。";
$n = 10;

// 截取字符串前10個字符
$substring = mb_substr($str, 0, $n, "UTF-8");

// 輸出到網頁
echo "<p>內容摘要:{$substring}...</p>";
?>

5. 總結

  • 使用substr截取字符串時,如果是英文或單字節編碼字符串,直接使用substr($str, 0, $n)即可。

  • 處理多字節字符串時,應使用mb_substr($str, 0, $n, "UTF-8") ,確保不會截斷字符導致亂碼。

  • 在網頁輸出時,結合HTML 標籤安全顯示截取結果。