unlink PHP o riscrivere file / corrente da solo
Domanda
Task:. Tagliare o cancellare un file dopo la prima passeggiata-through
Ho un file di installazione chiamato "index.php", che crea un altro file 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 */
dopo la creazione del nuovo file questo file viene chiamato e ho intenzione di cancellare il chiamata filecreation dal momento che è molto lunga e solo necessario in prima installazione.
i Perciò metti in codice di cui sopra
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 c'è un modo più semplice o una funzione per modificare il file corrente o anche "auto distruggere" un file dopo la prima chiamata?
Saluti
EDIT: trovato il modo di modificare, spiace ZAF
unlink(__FILE__);
può essere usato per eliminare il "file di aiuto" dopo l'esecuzione.
Soluzione
unlink(__FILE__);
per il file "aiutante" sembra necessaria in quanto i cant trovare un modo per modificare il file php inuse / processo.
Altri suggerimenti
La maggior parte dei siti PHP autoinstallanti utilizzano un install.php per eseguire il set-up iniziale. Quando l'installazione è verificato, si sarebbe reindirizzare a removeinstall.php che chiamare unlink () su ogni file di installazione per eliminarli tutti fuori.
Questo significa lasciarsi alle spalle le removeinstall.php, ma ha il vantaggio di non inquinare nessuna delle "codice" con il codice di rimozione dell'installazione.
removeinstall.php sarebbe semplicemente avere il contenuto scollegamento ...
if (file_exists('install.php')) {
unlink('install.php');
}
Se non si vuole lasciare alle spalle il removeinstall.php, si potrebbe avere un richiamo condizionato in un file diverso ... per esempio index.php? Removeinstallation = 1 o simili.