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

PHP 字符串轉 URL 友好格式函數實現指南

     編輯:PHP 相關知識

在構建 SEO 友好的 URL 或生成靜態頁面別名時,常需將標題字符串轉換為僅含字母、數字和連字符的格式。本文提供兩個針對不同字符集的實用函數。

純英文環境:簡潔版 tourl()

function tourl($str) {
    $str = preg_replace('/[^a-zA-Z0-9]+/', '-', $str);
    $str = trim($str, '-');
    return strtolower($str);
}

邏輯說明: 非字母數字字符替換為連字符 → 去除首尾連字符 → 全部小寫。

含特殊字符(中文、重音符等):增強版 strtourl()

function strtourl($str) {
    $str = htmlentities($str, ENT_QUOTES, "UTF-8");
    $str = preg_replace('/&([a-z]{1,2})(?:acute|lig|grave|ring|tilde|uml|cedil|caron);/i', '\1', $str);
    $str = html_entity_decode($str, ENT_QUOTES, "UTF-8");
    $str = preg_replace('/[^a-z0-9]+/i', '-', $str);
    return strtolower($str);
}

關鍵步驟:

  1. htmlentities 將特殊字符轉為 HTML 實體
  2. 正則移除重音符標記,保留基礎字母
  3. html_entity_decode 還原為純文本
  4. 非字母數字替換為連字符並小寫

內置函數替代方案

PHP 內置 urlencode()、rawurlencode() 等函數可直接處理 URL 編碼,適用於查詢參數值編碼場景;但生成可讀性路徑別名時,上述自定義函數更合適。

使用建議

  • 生成文章別名、分類 slug 時優先使用 strtourl()
  • 注意去除連續連字符,避免 --- 出現
  • 結合 mb_strtolower() 處理多字節字符更穩健
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved