5

任务:在第一次演练后剪切或删除文件。

我有一个名为“index.php”的安装文件,它创建了另一个 php 文件。

<? 
/* here some code*/
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "<?php \n
echo 'hallo, *very very long text*'; \n 
?>";
fwrite($fh, $stringData);
/*herecut"/
/*here some code */

在创建新文件后,这个文件被调用,我打算删除文件创建调用,因为它很长并且只在第一次安装时需要。

我因此添加到上面的代码

echo 'hallo, *very very long text*'; \n 
***$new= file_get_contents('index.php'); \n
$findme   = 'habanot';
$pos = strpos($new, $findme);
if ($pos === false) {
$marker='herecut';\n
$new=strstr($new,$marker);\n
$new='<?php \n /*habanot*/\n'.$new;\n
$fh = fopen('index.php', 'w') or die 'cant open file');
$stringData = $new;
fwrite($fh, $stringData);
fclose($fh);***    

?>";
fwrite($fh, $stringData);]}

第一次调用后是否有更简单的方法或功能来修改当前文件甚至“自毁”文件?

问候

编辑:找到了编辑的方法,很抱歉 zaf

unlink(__FILE__);

可用于在执行后删除“帮助文件”。

4

2 回答 2

5
unlink(__FILE__);

对于“帮助”文件似乎是必要的,因为我找不到修改 php 文件 inuse/process 的方法。

于 2010-05-08T18:30:09.367 回答
1

大多数自行安装的 PHP 站点使用 install.php 来执行初始设置。验证安装后,您将重定向到 removeinstall.php,这将在每个安装文件上调用 unlink() 以将它们全部清除。

这确实留下了 removeinstall.php,但好处是不会用安装删除代码污染任何“实时代码”。

removeinstall.php 将仅包含取消链接语句...

if (file_exists('install.php')) {
    unlink('install.php');
}

如果您不想留下 removeinstall.php,您可以在不同的文件中进行条件调用...例如 index.php?removeinstallation=1 或类似文件。

于 2010-05-11T06:48:05.687 回答