Quiero crear un archivo y puedo eliminarlo automáticamente después del período necesario. mi código es:
$timeForDelete=$_REQUEST['timeForDelete']; $text=$_REQUEST["text"]; $filename = uniqid(rand(), true) . '.txt'; if($timeForDelete =="2"){ //how save text to file and auto delete file after one hour? } else{ $f=fopen($filename,'a'); fwrite($f,$text); //write to file }if $timeForDelete ==2: ¿cómo puedo guardar texto en un archivo y eliminarlo automáticamente después de una hora? Espero que ayudes a resolver este problema. Gracias.
Hay varias maneras de hacer lo que está solicitando. Yo sugeriría que la forma más rápida de hacer esto sería:
Permítanme intentar dar un script de ejemplo que ejecutaría el cron.
http://php.net/manual/en/function.filemtime.php
Lamentablemente, en los sistemas Linux no podemos obtener la fecha de creación del archivo, por lo que fmtime es nuestra mejor opción. Para obtener más información, lea la wiki debajo de la documentación de fmtime .
Nota: Esto es solo un ejemplo simple.
Enumere todos los archivos en un directorio: (/ruta/a/su/script/yourscript.php)
//assuming files are stored in /path/to/your/script/myfiles $path = realpath(dirname(__FILE__)) . '/myfiles'; $files = array_diff(scandir($path), ['.', '..']); //assuming all your files are in $paths top level foreach($files as $file){ //unix time $ctime = fmtime($path . "/$file"); //basic math if(time() > $ctime){ unlink($path . "/$file"); } }Tu trabajo cron
Si está ejecutando un sistema operativo similar a Unix:
Se ejecuta cada 5 minutos. Puedes reconfigurar
crontab -eAgregue esto al crontab y guarde:
#invoke the intepreter */5 * * * * php /path/to/your/script/yourscript.phpEditar:
Alternativamente, puede guardar los tiempos de carga de estos archivos en una base de datos para realizar un seguimiento de las fechas de creación de archivos.
este código funciona al 100%
date_default_timezone_set('Asia/Kolkata'); $path = realpath(dirname(__FILE__)) . '\Register.php'; <'Enter Your delete file name'> $creat_time = date("dmY h:i:s",filemtime($path)); $endTime = strtotime("+1 year", strtotime($creat_time)); if(time()>$endTime){ unlink($path); }