如何创建在 PHP 中的 preg_replace_callback() 函数中使用的模式

问题描述

我正在将我的 PHP 应用程序从 PHP 5 升级到 PHP 7,为此我需要将 preg_replace() 函数的所有引用替换为 preg_replace_callback() 函数。

我很难为 preg_replace_callback() 函数创建 $pattern 参数。

以下是代码详情-

我试图匹配的字符串 -

$bandHdrs = "{format(26,num,4)}";

现有的 PHP 5 代码:

$bandHFmtString = "#({)(format)([(]*)([0-9]*)([a-zA-Z0-9,']*)([)]*)(})#e";
$subBandHead = preg_replace_callback($bandHFmtString,'$this->formatSqlNumber($queryData[$r][' . "$4" . '],\'' . "$5" . '\',\'' . "$2" . '\')',$bandHdrs);

新的 PHP 7 代码:

$bandHFmtString = "#\{format\(\[0-9]*\,\[a-zA-Z0-9]*\,\[0-9]*\)\}#";
$subBandHead = preg_replace_callback($bandHFmtString,function ($matches) use ($value) {
                                                                                        $firstCommaPos = strpos($matches[0],",");
                                                                                        $closeParenPos = strpos($matches[0],")",$firstCommaPos + 1);
                                                                                        $formatStr = substr($matches[0],$firstCommaPos,$closeParenPos - $firstCommaPos);
                                                                                        return Report::formatSqlNumber($value,$formatStr,"format");,$bandHdrs[$key]);

有人可以帮我创建 $bandHFmtString 模式来匹配 $bandHdrs 字符串吗?

任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...