PHP - Funcion PHP con tiempo de expiracion

 
Vista:

Funcion PHP con tiempo de expiracion

Publicado por israel escuer (1 intervención) el 04/11/2016 20:54:13
Hola estoy buscando una función de PHP que me permita ponerle un parámetro de tiempo y así de esta forma esa función se elimine una vez pasado ese tiempo por ejemplo a los 7 días.

Para que me entendáis por ejemplo: un texto que esta en color negro mediante una función le cambio a color rojo pero de una forma temporal que pasado 7 días ese texto vuelva a tener el mismo color negro del principio y que la función que ejecuta ese css se elimine de forma automática.

A ver si alguien me puede dar alguna idea

Muchas gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de VRM
Val: 152
Ha disminuido su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Funcion PHP con tiempo de expiracion

Publicado por VRM (192 intervenciones) el 05/11/2016 11:39:58
Hola:

¿Lo que quieres es una función que se borre a si misma cuando ha pasado un tiempo?

Podría ser así:

Programa principal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
session_start();
...
if ( !isset($_SESSION[tiempoInicial] ) {// Si la variable de sesión no existe es que no se ha ejecutado antes la función
     // Borra la sesión anterior
     session_start();// comienza la sesión
     session_unset();// elimina las variables de sesión
     session_destroy();// destruye la sesión
     // Crea la variable de sesión
     $_SESSION[tiempoInicial]  = time(); // Se toma el timestamp del momento en que se ejecuta por primera vez la función
}
$borrar = funcion(); Se ejecuta la función
if ( $borrar ) {
     unlink($ruta_del_archivo_que_contiene_la_funcion); // Borra la función
     $DescriptorFichero = fopen("$ruta_del_archivo_que_contiene_la_funcion","w");// Creamos de nuevo el fichero
     fputs($DescriptorFichero,"function funcion(){}");// Escribimos en el fichero una función vacía
     fclose($DescriptorFichero);
}
...

Archivo que contiene la función
1
2
3
4
5
6
7
8
function funcion() {
     $_SESSION[tiempoInicial] ;// Se necesita una variable global que indique cuando se ejecutó la función por primera vez
     if ( time() - $tiempoInicial > 604800 ) {
          return true;
     }
     ....
     return false;
}

... indica que aquí habrá código haciendo lo que corresponda
604800 son los segundos que tiene 7 días
Si la función devuelve true se borra el fichero y se crea de nuevo con la función vacía.

Lo que no entiendo es para qué quieres borrar la función. Sería suficiente con ejecutarla o no en función de si ha pasado 7 días después de su primera ejecución.

Seguramente este sistema requiere algún retoque: no está probado.

Saludos de Víctor.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar