Pregunta

Tarea:. Cortar o borrar un archivo después de la primera recorrido

Tengo un archivo de instalación llamado "index.php", que crea otro archivo 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 */

después de la creación del nuevo archivo de este archivo se llama y yo la intención de borrar el filecreation llamada ya que se necesita mucho tiempo y sólo en la primera instalación.

i para ello añadir al código anterior

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);]}

¿No es que hay una manera más fácil o una función para modificar el archivo actual o incluso "auto destruir" un archivo después de la primera llamada?

Regards

EDIT: encontrado el modo de edición, lo siento a zaf

unlink(__FILE__);

se puede utilizar para eliminar el archivo "ayudante" después de la ejecución.

¿Fue útil?

Solución

unlink(__FILE__);

para el archivo de "ayudante" parece necesario, ya que no puedo encontrar una manera de modificar el archivo PHP inuse / proceso.

Otros consejos

La mayoría de los sitios PHP auto-instalación utilizan una install.php para realizar la puesta a punto inicial. Cuando la instalación se verifica y se le redirige a removeinstall.php que exigiría unlink () en cada archivo de instalación en ellas borrar todo lo alto.

Esto deja detrás de la removeinstall.php, pero tiene la ventaja de no contaminar ninguna de las "código en vivo" con código de eliminación instalación.

removeinstall.php simplemente contendría las declaraciones desvincular ...

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

Si no desea dejar atrás el removeinstall.php, usted podría tener una llamada condicional en un archivo diferente ... por ejemplo index.php? Removeinstallation = 1 o similar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top