PHP 使用 preg_replace() 要做 regex 的字串取代很方便(單行),遇到多行每次都>要測試是要用 m 還是 s,還是做個紀錄好了~
- 先說結論:preg_replace 要對多行做 regex 判斷,要用 s
PHP preg_replace 針對多行的 regex 判斷參數
preg_rplace 多行的 regex 參數(s):
- 參數:preg_replace('/multi-line-regex/s', 'replace-to-string', $variable);
PHP preg_replace() 做多行字串取代的範例如下:
<?php $xml = '<xml>123 <test> xxx </test> </xml>'; print\_r(preg\_replace('/<test>.?<\/test>/s', '', $xml)); // 會將 <test></test> 包住的全部移除 ?>
- 註:若 preg_replace 的內容部分有安全疑慮,記得要用 preg_quote() 包起來。
- 詳見:The unexpected dangers of preg_replace()