繁体   English   中英

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

[英]Get PHP variable value via Ajax with variable name as parameter

我意识到类似的问题已经出现了几次,但是我似乎找不到能够帮助我解决问题的问题。

我们有一个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命令可以为我做到这一点!

提前谢谢了。

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

$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] : "";

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

是的,可以通过variable variables

echo $$var_name;

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM