通过Ajax以变量名作为参数获取PHP变量值

时间:2012-04-28 15:30:24

标签: php javascript jquery ajax

我意识到类似的问题已经出现过几次,但我似乎无法找到一个可以帮助我尝试做的事情。

我们有一个config.php文件,它基本上是用户设置的变量列表及其值,例如:

$OUR_EMAIL_ADDRESS = 'test@test.com';
$OUR_WEBSITE       = 'www.test.com';

就像所有其他用户一样,我们希望通过Javascript传输PHP值。

我们有一种方法可以通过ajax实现这一点 - 但它不像我们想要的那样灵活,因为每个变量都需要一个自定义脚本/ php页面:

第1部分 - javascript(jquery)

$.get("/getConfig_email.php", function(email){
    alert(email);
});

第2部分:getConfig_email.php

<?php
echo $OUR_EMAIL_ADDRESS_VALUE;
?>

问题:

有没有办法让PHP可以使用字符串作为变量名?即。我想做的是:

第1部分 - javascript(jquery)

$.get("/getConfig.php?name=OUR_EMAIL_ADDRESS_VALUE", function(email){
    alert(email);
});

第2部分:getConfig.php

<?php
$var_name = $_GET['name'];

//some magic here to turn the name of the variable 
//in to the actual variable - a bit like a reverse extract

echo $var_name.value;
?>
你怎么看?这有可能以某种方式 - 我希望只有一个php命令可以为我做这个!

非常感谢提前。

3 个答案:

答案 0 :(得分:1)

也许更好的选择是在数组中设置配置变量:

$CFG = array(
    'OUR_EMAIL_ADDRESS' => 'test@test.com',
    'OUR_WEBSITE' => 'www.test.com'
);

然后选择:

$var_name = $_GET['name'];
echo isset($CFG[$var_name]) ? $CFG[$var_name] : "";

否则,它可能是您脚本的真正安全问题。

答案 1 :(得分:0)

是的,可以通过variable variables

echo $$var_name;

但是,这是不明智的,因为您正在接受用户输入,并且可能用户可以获取应该隐藏的内部变量的值。

答案 2 :(得分:0)

使用所有配置变量创建一个字典,并使用它来按名称查找变量