首页 > 解决方案 > preg_replace_callback 只带 5 个参数?

问题描述

我用这样的 6 个参数编写 preg_replace_callback

$aTagPattern = '/<a[^>]*(href=["\']([^"\']*))+[^>]*>([^<]*)<\/a>/';

$content3 = preg_replace_callback($aTagPattern,"next_year",$content,-1,$count,PREG_OFFSET_CAPTURE);

PHP 会抱怨:

Warning: preg_replace_callback() expects at most 5 parameters, 6 given in /data/www/km/app/webroot/t.php on line 1877

但是 preg_replace_callback 的声明说它需要 6 个参数而不是 5 个:

function preg_replace_callback ($regex, callable $callback, $subject, $limit = -1, &$count = null, $flags=[]) {}

这个错误怎么会发生?

标签: phppreg-replace

解决方案


PHP 手册

版本 7.4.0 添加了 flags 参数。

升级你的 php 版本。


理想情况下,您不应该使用preg_函数来修改有效的 html 文档。您应该使用合法的 dom 解析器。


推荐阅读