douben7493 2014-10-14 17:31
浏览 67
已采纳

在没有<?php?>的情况下用HTML中的值替换变量

Here is the situation. I have 2 files

content.php

<?php $my_var = "this is a variable"; ?>
<h1> php{my_var} </h1>

index.php

<?php include "content.php" ?>

The result should be:

<h1>this is a variable</h1>

I know how to work with preg_replace_callback. But I don't know how can I change php{my_var} with the value of $my_var. All the logic should happens inside the index.php.

Edit

index.php

function replace_pattern($match)
{
    what should I write here
}
echo preg_replace_callback("/php\:\{(.*)\}/", "replace_pattern", $Content);

Edit 2

Variables are not declare in the global scope

  • 写回答

2条回答 默认 最新

  • doudun3910 2014-10-14 17:43
    关注

    Note the added question-mark in the regular expression to make it less greedy.

    $my_var = 'Hello World!';
    
    // Get all defined variables
    $vars = get_defined_vars();
    
    $callback = function($match) use ($vars)
    {
        $varname = $match[1];
        if (isset($vars[$varname])) {
            return $vars[$varname]; // or htmlspecialchars($vars[$varname]);
        } else {
            return $varname . ' (doesn\'t exists)';
        }
    };
    echo preg_replace_callback("/php\:\{(.*?)\}/", $callback, $Content);
    

    Demo: http://phpfiddle.org/main/code/ax15-bpyw

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题