preg_replace_callback 只取5个参数?

preg_replace_callback just take 5 parameter?

我这样写preg_replace_callback有6个参数

$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=[]) {}

怎么会出现这个错误?

来自PHP manual

Version 7.4.0 The flags parameter was added.

升级您的 php 版本。


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