preg_replace函式去除字串中的空格,逗號(,)等
阿新 • • 發佈:2018-11-11
$num=“1,2,3,4,5,6,7,8,86,9”;
1,如果格式是這樣子就用,PHP的preg_replace ,採用正則運算,去掉所有重複的","。
preg_replace(’#,{2,}#’,’,’,$num);
$num=",1,23,4,5,6,7,8";
2,如果字串前面的逗號應該用Itrim來去除","。
ltrim($num, “,”);
$num=“1,2,3,4,5,”;
2,如果字串後面的逗號應該用rtrim來去除","。
rtrim($num, “,”);
另:
關於php7+版本中 preg_replace /e修飾符已經棄用,可以preg_replace_callback的回撥函式/e修飾符
//第一種, 常用, 適合單一任務 $template = preg_replace_callback( //處理eval "/[\n\r\t]*\{eval\s+(.+?)\}[\n\r\t]*/is", function ($matches) { return str_replace("\\\"", "\"", preg_replace("/\<\?\=(\\\$.+?)\?\>/s", "\\1", "<? $matches[1] ?>")); }, $template ); //第二種, 當你需要同一正則處理多個任務時 [推薦] function stripvtags($expr) { $expr = str_replace("\\\"", "\"", preg_replace("/\<\?\=(\\\$.+?)\?\>/s", "\\1", $expr)); return $expr; } $template = preg_replace_callback( //處理eval "/[\n\r\t]*\{eval\s+(.+?)\}[\n\r\t]*/is", function ($matches) { return stripvtags("<? $matches[1] ?>"); }, $template ); $template = preg_replace_callback( //處理echo "/[\n\r\t]*\{echo\s+(.+?)\}[\n\r\t]*/is", function ($matches) { return stripvtags("<? echo $matches[1] ?>"); }, $template ); //第三種 跟第一種差不多, 只不過是分開寫 class Template { public function test() { $template = preg_replace_callback( //處理eval "/[\n\r\t]*\{eval\s+(.+?)\}[\n\r\t]*/is", array($this, 'stripvtagsEval'), $template ); } protected function stripvtagsEval($matches) { return str_replace("\\\"", "\"", preg_replace("/\<\?\=(\\\$.+?)\?\>/s", "\\1", "<? $matches[1] ?>")); } }