【发布时间】:2014-01-09 00:30:08
【问题描述】:
我正在解析一个 php 文件,我想从中获取一个特定的变量值。
说 $str = '$title = "Hello world" ; $author = "极客蝙蝠侠"';
我想在给定变量 $author 的情况下获得“极客蝙蝠侠”。但我想动态地做到这一点。
假设从 html 表单输入值 所以
$myDynamicVar = $_POST['var']; //coming from form in the HTML
//$myDynamicVar = '$title = '; (the user will provide the dollar sign and the equal sign)
$pattern = '/\'. $myDynamicVar . '"(.*?)"/s';
$result = preg_match_all($pattern, $str, $output, PREG_SET_ORDER);
结果是空的,尽管我知道变量存在。 我假设它与双引号有关,我没有正确地转义它们。
有人可以帮忙吗?
【问题讨论】:
-
这个任务的背景是什么?为什么首先需要它?
-
@zerkms 我想创建一个 GUI 来修改 php 变量(这样没有 php 技能的用户可以更新基于 php 变量生成的网站)
-
你能加载php文件吗?如果是这样,您可以获得变量的内容为
echo $$myDynamicVar。 -
@Stephani Alves:那你为什么不修改基于文本的文件,比如
.ini?然后在你的 php 代码中阅读它们 -
@StephaniAlves 将这些值存储在数据库或配置文件(可能是 XML?)中并通过 PHP 检索值比直接解析 php 文件应该更容易、更安全(也更正确)
标签: php regex preg-match-all