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

PHP 字符串處理實戰筆記:轉義、格式化、填充、比較、查找、替換全攻略

     編輯:PHP 綜合知識

一、轉義字符與特殊編碼

單引號 vs 雙引號

引號類型支援轉義序列
單引號 '...'\'、\\
雙引號 "..."\n、\r、\t、\\、\$、\"、八進制 \[0-7]{1,3}、十六進制 \x[0-9A-Fa-f]{1,2}

實例:十六進制輸出中文

echo "H\xf6me"; // 輸出:H鰉e(視終端編碼而定)

二、格式化輸出:printf / sprintf

printf("輸出內容 %.2f\n", $PI);  // 直接輸出
$str = sprintf("%.2f", 3.14159); // 返回字串

// 常用格式符
%d  整數    %s  字串    %f  浮點數    %b  二進制
%10.2f  寬度10、小數2位、右對齊
%.9s    截取前9字元

三、字符串填充:str_pad

$index = ["one"=>1, "two"=>155, "three"=>1679];
echo str_pad("這是標題", 50, " ", STR_PAD_BOTH)."\n";
foreach ($index as $k=>$v) {
    echo str_pad($k, 30, ".") . str_pad($v, 20, ".", STR_PAD_LEFT) . "\n";
}
/* 輸出:
這是標題
one............................1
two...........................155
three........................1679
*/

四、大小寫轉換與修剪

  • strtolower()、strtoupper()、ucfirst()、ucwords()
  • ltrim()、rtrim()、trim()(含 null、tab、換行、空格)
  • nl2br():\n → <br>

五、字符串比較

函數說明回傳值
strcmp($a,$b)區分大小寫$a>$b 返回 -1;$a<$b 返回 1;相等 0
strncmp($a,$b,$len)限制比較長度同上
strcasecmp() / strncasecmp()不區分大小寫同上
strcmp("aardvark","aardwolf"); // -1
strncmp("aardvark","aardwolf",4); // 0

六、查找與擷取子字串

substr:靈活切片

$var = "abcdefgh";
substr($var, 2);      // "cdefgh"  從索引2到結尾
substr($var, 2, 3);   // "cde"     長度3
substr($var, -1);     // "h"       倒數1字元
substr($var, -5, 2);  // "de"      倒數5起長度2
substr($var, -5, -2); // "def"     倒數5到倒數3

定位函數

  • strpos($haystack, $needle, $offset):首次出現位置
  • strrpos($haystack, $needle):最後一次出現(單字元)
  • strstr() / stristr():從首次出現處截取到結尾
  • strrchr():從最後一次出現處截取

分割與合併

$guest = "this is a string";
$arr = explode(" ", $guest);  // 分割成陣列
sort($arr);
echo implode(",", $arr);      // 合併為字串
// 輸出:a,is,string,this

七、替換子字串

substr_replace($source, $replace, $start, $length);
// 從 $start 起替換 $length 字元為 $replace

八、效能小貼士

  • 單純字串連接用單引號 'a'.$b 比雙引號 "a$b" 略快(避免解析變數)。
  • 大量字串拼接建議用陣列 [] 最後 implode()。
  • 正則替換 preg_replace 比 str_replace 慢,能用後者就不用前者。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved