使用PHP创建PHP文件?

时间:2017-04-14 10:50:52

标签: php

我正计划创建一个简单的脚本,允许PHP用户中没有经验的人为一个视频游戏创建代码文件。我有两个文件,“code.txt”和“exec.php”。第一个文件如下所示:

getglobal_move_call("TurnTarget")
getglobal_move_loadk_call("GenerateCSM", "15")

并且“exec.php”创建一个“temp.php”,用于导入用户制作的文件。它充满了“str_replace”函数,结果看起来像这样:

<?

$temp_line = "TurnTarget(param1)";
file_put_contents($generated_output, $temp_line, FILE_APPEND);
$temp_line = "GenerateCSM(param1, 15)";
file_put_contents($generated_output, $temp_line, FILE_APPEND);

?>

但是,当我在这些替换后回复我的代码时,我得到了这个:

<?

 = "TurnTarget(param1)";
 file_put_contents(User/Apple/Sites/Generate/Generated.txt, , FILE_APPEND);
 = "GenerateCSM(param1, 15)";
 file_put_contents(User/Apple/Sites/Generate/Generated.txt, , FILE_APPEND);

?>

如您所见,str_replace删除了所有变量。有解决方案吗?

2 个答案:

答案 0 :(得分:1)

这是因为您在代码中使用了"",并且PHP将$temp_line替换为它的实际值(null,因为没有这样的var)。

要回复PHP代码,请使用$

转义\

Live demo

$code = <<< PHP
    \$temp_line = "TurnTarget(param1)";
    file_put_contents(\$generated_output, \$temp_line, FILE_APPEND);
    \$temp_line = "GenerateCSM(param1, 15)";
    file_put_contents(\$generated_output, \$temp_line, FILE_APPEND);
PHP;

echo $code;

答案 1 :(得分:0)

通过分隔“$”符号和变量名称来解决问题。

str_replace("templine", "$"."templine", $code);