首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 字符串處理 10 大高頻場景與最佳函數選型

     編輯:PHP 相關知識

PHP 字符串函數極其豐富,選對函數事半功倍。本文梳理 10 個高頻場景,給出最優函數選擇與示例代碼。

1. 獲取字符串長度 → strlen()

$text = "sunny day";
$count = strlen($text); // 9 (含空格)

注意:多字節字符需用 mb_strlen($text, 'UTF-8')。

2. 截取摘要加省略號 → substr_replace()

$article = "BREAKING NEWS: In ultimate irony, man bites dog.";
$summary = substr_replace($article, "...", 40);
// "BREAKING NEWS: In ultimate irony, man bi..."

多字節安全版:mb_substr($article, 0, 40, 'UTF-8') . '...'。

3. 統計單詞/字符數 → str_word_count() / count_chars()

$article = "BREAKING NEWS: In ultimate irony, man bites dog.";
$wordCount = str_word_count($article); // 8
$charFreq = count_chars($article, 1); // 返回 [ord=>freq] 數組

4. 解析 CSV → fgetcsv() 一行搞定

$fh = fopen("contacts.csv", "r");
while ($line = fgetcsv($fh, 1000, ",")) {
    echo "Contact: {$line[1]}\n"; // 直接取欄位
}
fclose($fh);

自動處理引號包裹、欄位內逗號、換行等邊界情況,遠優於 fgets+explode。

5. 數組轉 CSV 行 → implode()

$csvLine = implode(",", $record);

含特殊字符時建議 fputcsv() 直接寫入文件句柄,自動處理轉義。

6. URL 自動轉超鏈接 → preg_replace() 正則替換

$text = "Visit https://example.com now";
$linked = preg_replace(
    '/https?:\/\/[^\s]+/',
    '<a href="$0" target="_blank">$0</a>',
    $text
);

生產環境建議用成熟庫(如 league/html-to-markdown 反向或專用 URL 鏈接器),正則難以覆蓋所有合法 URL 形式。

7. 移除/保留 HTML 標籤 → strip_tags()

$safe = strip_tags($input);           // 全部移除
$safe = strip_tags($input, '<b><i><u>'); // 保留指定標籤

配合 HTMLPurifier 做深度 XSS 防護更可靠。

8. 字符串比較 → strcmp() / strcasecmp()

$pswd = "secret"; $pswd2 = "secret";
if (strcmp($pswd, $pswd2) !== 0) echo "不一致";
// 不區分大小寫用 strcasecmp()

返回 0 表示相等,非 0 表示差異,比 == 更嚴格且二進制安全。

9. 換行符轉 <br> → nl2br()

$comment = nl2br($comment); // \n \r\n 都轉為 <br />

10. 自動換行 → wordwrap()

$speech = "Four score and seven years ago...";
echo wordwrap($speech, 30); // 每 30 字符換行

參數 3 可指定斷行符,參數 4 true 強制單詞內斷行。

避坑提示

  • 多字節環境統一用 mb_* 族函數(mb_strlen、mb_substr、mb_strpos...)。
  • 正則處理大文本時加 u 修飾符啟用 UTF-8 模式。
  • 用戶輸入入庫前 只做驗證,輸出時才按上下文(HTML/JS/SQL/Shell)做相應轉義。

掌握這 10 大場景的最優解,字符串處理不再是痛點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved