我需要包含一个PHP文件并从中执行函数。 执行后,在PHP脚本结束时,我想向它添加一些内容。
但是我无法打开文件。可以关闭包含的文件/任何类似的东西,这样我就可以将信息附加到PHP文件。
include 'something.php';
echo $somethingFromIncludedFile;
//Few hundred lines later
$fh = fopen('something.php', 'a') or die('Unable to open file');
$log = "\n".'$usr[\''.$key.'\'] = \''.$val.'\';';
fwrite($fh, $log);
fclose($fh);
如何实现?
答案 0 :(得分:5)
通常,您永远不应该使用PHP本身修改PHP代码。这是一种不好的做法,首先是从安全的角度来看。我相信你可以通过其他方式实现你所需要的。
答案 1 :(得分:0)
正如Alex所说,自修改代码非常非常危险。而不是从代码中分离数据就是愚蠢的。除了这两个警告之外,事实上PHP数组相对较慢且不能很好地扩展(因此你可以使用file_put_contents('data.ser',serialize($ usr))/ $ usr = unserialize(file_get_contents('data。 ser'))但它只适用于少数用户。)
然后您遇到了使用传统文件在多用户上下文中存储数据的问题 - 这是可能的,但您需要构建复杂的锁定队列管理。这通常需要使用守护进程来管理队列/互斥量,并且总是比其价值更多的努力。
使用数据库存储数据。
答案 2 :(得分:-1)
如你所知,这种尝试不是好事之一。如果你真的想要包含你的文件,然后附加一些东西,那么你可以通过以下方式进行 请注意使用eval();如果您无法100%确定文件内容是否包含有害代码,则存在风险。
// This part is a replacement for you include
$fileContent = file_get_contents("something.php");
eval($fileContent);
// your echo goes here
// billion lines of code ;)
// file append mechanics
$fp = fopen("something.php", "a") or die ("Unexpected file open error!");
fputs($fp, "\n".'$usr[\''.$key.'\'] = \''.$val.'\';');
fclose($fp);