是否有可能使用PHP语言本身编写常规PHP文件?
是否与编写.txt文件相同?
或者还有其他我应该知道的东西?
每当我将记录保存到数据库中时,我想覆盖同一个文件myConfig.php
,它应该包含这样的内容:
<?php
$myVar = "myValue";
?>
答案 0 :(得分:12)
编写php文件与编写其他文本文件没什么不同。实现此目的的一种方法是file_put_contents()
。像这样近似的东西应该有效:
file_put_contents('myConfig.php', "<?php
\$myVar = \"myValue\";
?>");
您必须确保运行php的用户具有在给定目录中写入文件的权限。这是一个常见的陷阱。如果权限错误无效,请检查错误日志中的错误。
另一方面,基于从数据库加载数据动态编写php代码可能会导致安全漏洞。具体来说,它可能允许恶意用户将任意PHP代码注入您的系统并执行它。如果数据库中的数据来自用户填写的Web表单,则尤其如此。要非常小心。验证,清理并正确编码所有动态值。实际上最好的办法是退后一步,重新考虑你的设计。你真的需要动态地将这些配置文件写为php文件吗?你可以使用ini文件吗? (提示:parse_ini_file()
)。或者你可以直接使用数据库中的配置值而无需编写文件吗?
答案 1 :(得分:2)
如果您的权限是正确的,它应该可以正常运行:
<?php
file_put_contents('selfwrite2.php',<<<END
<?php echo "Hello World!";
END
);
include 'selfwrite2.php';