2010-05-08 93 views
4

任務:首次穿行後剪切或擦除文件。PHP取消鏈接或自行重寫自己/當前文件

我有一個名爲「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 */ 

創建新的文件這個文件被稱爲後,我故意抹去 filecreation調用,因爲它是很長,只需要在第一次安裝。

我爲此添加到上面的代碼

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__); 

可用於執行之後刪除「幫助文件」。

回答

5
unlink(__FILE__); 

的「幫手」的文件似乎有必要,因爲我無法找到一個方法來修改PHP文件INUSE /過程。

+3

Dude(ss),那不是很運動的你。用別人的回答回答你自己的問題通常是不被接受的。無論如何,我都皺着眉頭。 – zaf 2010-05-08 18:37:51

+0

爲什麼,你沒有提到取消鏈接(__FILE__)(下劃線在評論區不可見),我只回答我的問題,因爲我無法在評論區使用代碼。這就是爲什麼我用正確的語法爲其他人轉發代碼。 其實我不知道你的問題,但很抱歉,如果我做了不適當的事情。 – Email 2010-05-08 19:05:44

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或類似。