使用PHP代码写入PHP文件?

AsT*_*rns 2 php file

是否可以使用PHP语言本身编写常规PHP文件?
是否与编写.txt文件相同?
或者还有其他我应该知道的东西?

每当我将记录保存到数据库中时,我想覆盖同一个文件myConfig.php,它应该包含这样的内容:

<?php

     $myVar = "myValue";

?>
Run Code Online (Sandbox Code Playgroud)

Asa*_*aph 12

编写php文件与编写其他文本文件没什么不同.实现这一目标的一种方法是file_put_contents().像这样近似的东西应该工作:

file_put_contents('myConfig.php', "<?php

    \$myVar = \"myValue\";

?>");
Run Code Online (Sandbox Code Playgroud)

您必须确保运行php的用户具有在给定目录中写入文件的权限.这是一个常见的陷阱.如果权限错误不起作用,请检查错误日志中的权限错误.

另一方面,基于从数据库加载数据动态编写php代码可能会导致安全漏洞.具体来说,它可能允许恶意用户将任意PHP代码注入您的系统并执行它.如果数据库中的数据来自用户填写的Web表单,则尤其如此.要非常小心.验证,清理并正确编码所有动态值.实际上最好的办法是退后一步,重新考虑你的设计.你真的需要动态地将这些配置文件写为php文件吗?你可以使用ini文件吗?(提示:) parse_ini_file().或者您可以直接使用数据库中的配置值而无需编写文件?

  • 我想这是一个更好的答案,而不仅仅是说"是". (2认同)