推薦:《PHP視頻教程》
preg_replace_callback
這個函數的作用是執(zhí)行一個正則表達式搜索并且使用一個回調進行替換
preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed
參數說明
-
pattern
要搜索的模式,可以是字符串或一個字符串數組。
-
callback
一個回調函數,在每次需要替換時調用,調用時函數得到的參數是從 subject 中匹配到的結果?;卣{函數返回真正參與替換的字符串。這是該回調函數的簽名:
-
handler ( array $matches ) : string
經常會需要 callback 函數而僅用于 preg_replace_callback() 一個地方的調用。在這種情況下,你可以使用 匿名函數 來定義一個匿名函數作為 preg_replace_callback() 調用時的回調。 這樣做你可以保留所有調用信息在同一個位置并且不會因為一個不在任何其他地方使用的回調函數名稱而污染函數名稱空間。
Example #1 preg_replace_callback() 和 匿名函數
<?php /* 一個unix樣式的命令行過濾器,用于將段落開始部分的大寫字母轉換為小寫。 */ $fp = fopen("php://stdin", "r") or die("can't read stdin"); while (!feof($fp)) { $line = fgets($fp); $line = preg_replace_callback( '|<p>s*w|', function ($matches) { return strtolower($matches[0]); }, $line ); echo $line; } fclose($fp); ?>
-
subject
要搜索替換的目標字符串或字符串數組。
-
limit
對于每個模式用于每個 subject 字符串的最大可替換次數。 默認是 -1(無限制)。
-
count
如果指定,這個變量將被填充為替換執(zhí)行的次數。
如何傳參
默認情況下,這個回調函數只會接收$matches這個匹配參數,如果想要傳遞