首页 > 解决方案 > 如何使用 $ regex 值作为 php 变量?

问题描述

案子

我已经声明了一个这样的 php 变量

    <?php $covid19=200;?>

然后我有一个像这样的html标记

    {{:covid19:}}

我有一个正则表达式来匹配这个模式

    /\{\{:(.*?):\}\}/si

我有一个 preg 替换规则

    <p>$1</p>

它完美地工作并产生了这个结果

   <p>covid19</p>

一切安好

我的期望

我希望产生这个结果

    <?php echo $covid19;?>

当然是的

    200

标签: phpregex

解决方案


只需使用它作为替换:

<?php echo \$$1; ?>

您只需添加文字文本并转义$变量。这将导致200只要该代码随后由 PHP 解析。

如果不是,则需要替换为200(的值$covid19)。然后只要$covid19在全局范围内,您就可以使用:

$result = preg_replace_callback('/\{\{:(.*?):\}\}/si',
                                function($m) {
                                    return $GLOBALS[$m[1]];
                                },
                                $string);

推荐阅读