PHP preg_replace

PHP preg_replace 函式可以用來執行一個正規表達式的搜尋以及取代,簡單的來說就是可以把字串中的某部分,透過正規方式找出來,並且替換為新的內容,例如"今天的早餐很好吃",就可以用 PHP preg_replace 函式把早餐替換為晚餐,而成為"今天的晚餐很好吃"這樣,preg_replace 與 preg_match 有點類似,不同於 preg_match 僅能做字串比對,preg_replace 還多出了取代的功能。

PHP preg_replace 函式基本語法

preg_replace ( $pattern , $replacement , $subject , $limit = -1 , $count )


搜尋 $subject 的內容並找出 $pattern 的部分,用 $replacement 取代,其中  $subject 可以是 array 或字串,$limit 是 PHP 4.0.2 增加的新功能,屬於選填項目,指的是最大的取代次數,預設值為 -1,代表無限次,最後一個參數 $count 是 PHP 5.1.0 增加的新功能,也是選填項目,如果有指定,則會被填充為完成的取代次數。

如果 $subject 是一個 array,preg_replace 處理完後返回一個 array,如果 $subject 是一個字串,則反回處理完成的字串。假設沒有搜尋比對出 $pattern,就會直接將 $subject 返回,如果在處理的過程有錯誤的情況發生,則 preg_replace 會返回 NULL。

PHP preg_replace 函式範例一、替換英文單字
<?php
$subject="Good morning Mr Smith.";
$pattern='morning';
$replacement='night';
echo preg_replace("/($pattern)/i",$replacement,$subject);
?>
以上輸出結果:Good night Mr Smith.

我們透過 PHP preg_replace 函式,成功將 morning 搜尋出來,並取代為 night。

PHP preg_replace 函式範例二、移除空格
<?php
$subject="Good morning Mr Smith.";
$pattern='/\s/';
$replacement='';
echo preg_replace("/($pattern)/i",$replacement,$subject);
?>
以上輸出結果:GoodnightMrSmith.

$parttern 的 '/\s/' 正規表示會將 $subject 字串中的空格找出來,$replacement  我們給空值,經過 preg_replace 處理後,字串的空格就不見囉!另外常見的處理錯誤原因可能是 $pattern 或 $replacement 中有引號,可以用 addslashes 先處理過。

推薦給您的相關主題
© Copyright wibibi.com 網頁設計教學百科 基礎的網頁設計規劃、資料庫與程式設計 Since 2012