PHP unlink OR umschreiben eigene / aktuelle Datei von selbst
Frage
. Aufgabe: Ausschneiden oder Löschen einer Datei nach dem ersten Gang durch
Ich habe eine Installationsdatei „index.php“ genannt, die eine andere PHP-Datei erstellt.
<?
/* 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 */
nach der Erstellung der neuen Datei wird diese Datei mit dem Namen und i Absicht die löschen filecreation Ruf, da es sehr lange ist und nur zum ersten Mal benötigt bei der Installation.
i dafür add den obigen 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);]}
Nicht ist es ein einfacher Weg oder eine Funktion, um die aktuelle Datei zu ändern oder sogar eine Datei nach dem ersten Aufruf „Selbst zerstören“?
Viele Grüße
EDIT: die Art und Weise zu bearbeiten gefunden, leider ZAF
unlink(__FILE__);
kann verwendet werden, um die „Helfer-Datei“ nach der Ausführung zu löschen.
Lösung
unlink(__FILE__);
für die „Helfer“ Datei erscheint notwendig, da ich einen Weg finden kann nicht die PHP-Datei inuse / Prozess zu ändern.
Andere Tipps
Die meisten selbst installierende PHP-Websites verwenden, um ein install.php der Ersteinrichtung durchzuführen. Wenn die Installation überprüft wird, würden Sie umleiten removeinstall.php die unlink nennen würde () auf jeder Installationsdatei, sie alle zu löschen.
Das tut Urlaub hinter dem removeinstall.php, hat aber den Vorteil, nicht von dem „Live-Code“ mit der Installation Entferncode verschmutzt.
removeinstall.php würde einfach die unlink Aussagen enthalten, ...
if (file_exists('install.php')) {
unlink('install.php');
}
Wenn Sie nicht hinter dem removeinstall.php verlassen wollen, können Sie einen bedingten Aufruf in einer anderen Datei ... zB index.php? Removeinstallation = 1 oder ähnliches.