站长资讯网
最全最丰富的资讯网站

关于php preg_replace_callback回调函数传参问题

推荐:《PHP视频教程》

preg_replace_callback

这个函数的作用是执行一个正则表达式搜索并且使用一个回调进行替换

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

如果指定,这个变量将被填充为替换执行的次数。

如何传参

默认情况下,这个回调函数只会接收$matches这个匹配参数,如果想要传递

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号