开发者

PHP unlink OR rewrite own/current file by itself

Task: Cut or erase a file after first walk-through.

i have an install file called "index.php" which creates another php fi开发者_StackOverflow社区le.

<? 
/* 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 */

after the creation of the new file this file is called and i intent to erase the filecreation call since it is very long and only needed on first install.

i therefor add to the above 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);]}

Isnt there an easier way or a function to modify the current file or even "self destroy" a file after first call?

Regards

EDIT: found the way to edit, sorry to zaf

unlink(__FILE__);

can be used to delete the "helper file" after execution.


unlink(__FILE__);

for the "helper" file seems necessary since i cant find a way to modify the php-file inuse/process.


Most self-installing PHP sites use an install.php to perform the initial set-up. When the install is verified, you would redirect to removeinstall.php which would call unlink() on each installation file to clear them all out.

This does leave behind the removeinstall.php, but has the benefit of not polluting any of the "live code" with installation removal code.

removeinstall.php would simply contain the unlink statements...

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

If you don't want to leave behind the removeinstall.php, you could have a conditional call in a different file... for example index.php?removeinstallation=1 or similar.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜