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

PHP 字串處理函數大全:URL 解析、格式化、比較、正則與安全過濾

     編輯:PHP 相關知識

PHP 字串處理函數大全:URL 解析、格式化、比較、正則與安全過濾

字串操作是 Web 開發最高頻任務。PHP 提供超過 100 個字串函數,本文精選實戰高頻函數,分類整理為 URL 解析、輸出格式化、大小寫轉換、編碼補齊、HTML 實體轉換、安全過濾三道防線,並附正則表達式應用範例。

一、URL 解析三劍客

1. parse_url():拆解 URL 結構

<?php
$url = "https://blog.csdn.net/junzaivip.php?id=10&name=20";
$parts = parse_url($url);
/*
Array (
    [scheme] => http
    [host] => blog.csdn.net
    [path] => /junzaivip.php
    [query] => id=10&name=20
)
*/
?>

2. parse_str():查詢字串轉陣列(推薦)

<?php
parse_str($parts['query'], $queryArr);
print_r($queryArr); // Array ( [id] => 10 [name] => 20 )
?>

3. pathinfo():路徑資訊(較少用於完整 URL)

<?php
$path = "https://blog.csdn.net/junzaivip";
print_r(pathinfo($path));
// [dirname] => https://blog.csdn.net [basename] => junzaivip [extension] => [filename] => junzaivip
?>

二、字串輸出與格式化

函數說明範例
echo語言結構,多參數用逗號,無回傳值echo 'a','b';
print函數,單參數,回傳 1$r = print 'hi';
printf格式化輸出(同 C)printf("%s-%d", 'age', 25);
sprintf格式化回傳字串$s = sprintf("%0.2f", 3.14159);

常用格式符:%s字串 %d整數 %f浮點 %.2f保留兩位小數 %x十六進位。

三、空白處理與補齊

  • trim()/ltrim()/rtrim():移除首尾/左/右空白(含 \n\r\t\v\0)。
  • str_pad($str, 10, '*', STR_PAD_LEFT):補齊指定長度。
  • str_repeat('-', 20):重複字串(常用於無限分類縮進)。
  • strlen():位元組長度(多位元組字元請用 mb_strlen())。

四、大小寫轉換

  • strtolower() / strtoupper():全轉小寫/大寫。
  • ucfirst():首字母大寫。
  • ucwords():每個單詞首字母大寫。

五、其他常用格式化

  • strrev():反轉字串。
  • number_format(12345.678, 2, '.', ','):千分位格式化 → 12,345.68。
  • md5($str):32 位雜湊(不適合密碼儲存,請用 password_hash())。
  • str_shuffle($str):隨機打亂字元順序。

六、HTML 相關與安全過濾三道防線

函數用途轉換對象
nl2br()換行轉 <br>\n
htmlspecialchars()防 XSS,轉 HTML 實體& ' " < > → &amp; &quot; &#039; &lt; &gt;
addslashes()資料庫轉義(舊式)' " \ NUL 前加反斜線
stripslashes()移除 addslashes 加的斜線-
strip_tags()保留允許標籤,剝離其餘strip_tags($html, '

')

資料入庫前三道防線(建議順序)

  1. 標籤白名單:strip_tags($input, '') 只保留安全標籤。
  2. 轉義引號:addslashes() 或 **預處理語句**(PDO::prepare,現代首選)。
  3. 實體編碼:htmlspecialchars() 輸出到 HTML 時使用,入庫前可選。

七、正則表達式在字串中的應用

1. preg_split() 分割

<?php
$query = "id=10&name=20";
$arr = preg_split('/[&=]/', $query); // 以 & 或 = 分割
// Array ( [0] => id [1] => 10 [2] => name [3] => 20 )
?>

2. preg_match() / preg_match_all() 擷取

<?php
$str = "Email: test@example.com, Phone: 0912-345678";
preg_match_all('/\b[\w.]+@[\w.]+\.\w+\b/', $str, $matches);
print_r($matches[0]); // Array ( [0] => test@example.com )
?>

3. preg_replace() 替換

<?php
$str = "價格:$100 和 $200";
echo preg_replace('/\$\d+/', '**隱藏**', $str); // 價格:**隱藏** 和 **隱藏**
?>

字串處理的核心原則:輸入過濾、儲存轉義、輸出編碼。熟練掌握上述函數與正則,能將複雜的字串邏輯簡化為幾行語意清晰的代碼。現代開發中,請優先使用 mb_* 多位元組函數族群與 PDO 預處理,確保 Unicode 與資安無虞。

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