如何回显一个尚未变量的变量

时间:2014-08-31 11:21:05

标签: php variables

我正在努力使用以下脚本:

$filename = '../lang.nl.php'; 
$string   = '<?php // language = ' . $filename . '<br>'; 

foreach ($_POST as $param_name => $param_val) {
    $string .= "$lang=['". $param_name ."'] = ". $param_val .";\n"; 
}

$string .= "?>";
file_put_contents($filename, $string); 

正如您所看到的,我想创建一个包含所有$ _POST变量的语言文件,但PHP将$ string中的$ lang视为变量。你可以想象这不是我想要的,它应该只打印$ lang而不是变量应该是什么。我得到的错误是$ lang不存在,但我只想打印$ lang。

2 个答案:

答案 0 :(得分:2)

逃离$:$string .= "\$lang=['". $param_name ."'] = ". $param_val .";\n";

与原始代码的不同之处是$lang之前的反斜杠,它使$符号成为普通的$符号,而不是变量名称的标记。

答案 1 :(得分:1)

在这里使用var_export更容易(也更安全):

$filename = '../lang.nl.php'; 
$post = var_export($_POST, true);
$code = "<?php // language = $filename;
    \$lang = $post;
?>";
file_put_contents($filename, $code);
如果"$lang=['". $param_name ."'] = ". $param_val;包含引号,

param_val将会失败。