7

preg_replace和 和有什么区别preg_filter?在某些情况下使用其中一个而不是另一个有什么优势吗?我尝试阅读文档,但仍然不太明白有什么区别。请赐教。谢谢。

4

2 回答 2

2

preg_filterover的好处preg_replace是你可以检查是否有任何东西被替换,因为preg_filter如果没有被替换则返回 null ,而preg_replace不管怎样都返回主题。

$subject = 'chips';
$pattern = '/chops/';
$replacement = 'flops';

if (is_null(preg_filter($pattern, $replacement, $subject)) { // true
    // do something
}

echo preg_replace($pattern, $replacement, $subject); // 'chips'
于 2015-05-22T17:17:14.903 回答
1

preg_filter() 与 preg_replace() 相同,只是它只返回匹配的(可能转换的)主题。有关此函数如何工作的详细信息,请阅读 preg_replace() 文档。

来自:这里

所以如果签名是

preg_filter ( mixed $pattern , mixed $replacement , 
              mixed $subject [, int $limit = -1 [, int &$count ]] )

它将$subject参数“转换”(所有匹配项regex pattern都是替换的)返回到一个数组中

于 2012-06-13T06:56:56.133 回答