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

PHP 將字串中的空白字元替換為逗號的實用函數

     編輯:PHP 綜合知識

處理關鍵字、標籤輸入時,常需將使用者輸入的各種空白(全形、半形、連續空白)統一轉為逗號分隔格式。本文提供一個處理邏輯完整的函數,涵蓋全半形轉換、連續空白合併、首尾修剪。

函數實作

<?php
/**
 * 關鍵字空白轉逗號
 * @param string $str 輸入字串
 * @return string 逗號分隔字串
 */
function emptyreplace($str) {
    // 1. 全形空白轉半形
    $str = str_replace(' ', ' ', $str);
    // 2. 連續空白合併為單一空白
    $str = preg_replace('/\s+/', ' ', $str);
    // 3. 去除首尾空白
    $str = trim($str);
    // 4. 空白替換為逗號
    $str = str_replace(' ', ',', $str);
    return $str;
}

// 測試
$input = "關鍵字1   關鍵字2  關鍵字3";
echo emptyreplace($input); // 輸出: 關鍵字1,關鍵字2,關鍵字3
?>

邏輯步驟解析

  1. 全形轉半形:中文輸入法常產生全形空白(U+3000),先統一轉為半形空白(U+0020);
  2. 合併連續空白:使用正則 /\s+/ 一次性將多個空白、Tab、換行合併為單一空白,比逐字元迴圈更高效;
  3. 修剪首尾:trim() 移除開頭結尾空白,避免產生前導或尾隨逗號;
  4. 統一替換:將剩餘單一空白替換為逗號。

進階版:支援多種分隔符輸入

若使用者可能輸入逗號、分號、頓號等混合分隔:

function normalizeKeywords($str) {
    // 統一各種分隔符為逗號
    $str = preg_replace('/[,,;;\s、]+/', ',', $str);
    // 移除首尾逗號
    $str = trim($str, ',');
    // 過濾空項
    $arr = array_filter(explode(',', $str));
    return implode(',', $arr);
}

應用場景

  • 文章標籤輸入處理;
  • 搜尋關鍵字分詞預處理;
  • 批量資料匯入前的清洗;
  • 前端輸入框即時格式化(配合 JS 實現)。

善用正則表達式與字串函數組合,能以最少代碼處理複雜的文字正規化需求。

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