PHP写入包含的文件
我需要包括一个PHP文件并从中执行函数。 在执行之后,在PHP脚本的末尾,我想给它添加一些东西 但我无法打开文件。可以关闭包含的文件/任何类似的文件,这样我就可以将信息附加到PHP文件中PHP写入包含的文件,php,file,include,Php,File,Include,我需要包括一个PHP文件并从中执行函数。 在执行之后,在PHP脚本的末尾,我想给它添加一些东西 但我无法打开文件。可以关闭包含的文件/任何类似的文件,这样我就可以将信息附加到PHP文件中 include 'something.php'; echo $somethingFromIncludedFile; //Few hundred lines later $fh = fopen('something.php', 'a') or die('Unable to open file'); $log
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);
如何实现这一点?通常,您永远不应该使用PHP本身修改PHP代码。首先,从安全角度来看,这是一种糟糕的做法。我相信你可以通过其他方式实现你所需要的。正如你已经知道的那样,这种尝试不是一种好的尝试。如果您真的想包含文件,然后在其中附加一些内容,那么您可以按以下方式执行。
请注意使用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);
正如Alex所说,自我修改代码是非常非常危险的。不把数据和代码分开是愚蠢的。除了这两个警告之外,还有一个事实,即PHP数组速度相对较慢,扩展性不好(因此您可以将内容(data.ser)、序列化($usr))/$usr=unserialize(file_get_contents('data.ser'))归档,但它只适用于少数用户) 然后,您会遇到使用传统文件在多用户上下文中存储数据的问题—这是可能的,但您需要构建复杂的锁定队列管理。这通常需要使用一个守护进程来管理队列/互斥对象,而且总是比它的价值更大
使用数据库来存储数据。是的,我可以用不同的方法来实现,这是我正在进行的“实验”,因此这将是实现这一点的最佳方法。您能描述一下您使用这种方法试图实现什么吗?简单的保存系统,我知道可以用不同的方法来实现。我试图保存hashmap,所以我附加$val['nevvar']='newfile';在追加新代码之前,我想在代码中使用$val['nevvar']。如果需要保存一些数据以便以后阅读或修改,请使用数据库或文件。为什么要这样做?我不确定为什么要这样做?我是说这有点奇怪。您正在尝试更新已包含的文件。。。无论你想做什么,这都是错误的……这不是一个真正的问题,应该关闭。