Anuncios

Bienvenidos sean a este pos, hoy veremos una funcion de PHP.

Anuncios

Esta funcion limpia el cache del estado de un archivo. Simplemente se llama a la funcion sin necesidad de pasar algun argumento. Para entenderlo vamos a analizar un ejemplo y para ello, primero crearemos un archivo vacio llamado archivo.txt, si esta en un sistema basado en Unix pueden usar el siguiente comando:

$ touch archivo.txt
Anuncios

Con el archivo creado, pasen a crear un nuevo archivo en el mismo directorio y agreguen el siguiente codigo:

<?php

$archivo = "archivo.txt";
echo substr(sprintf('%o', fileperms($archivo)), -3) . "\n";
chmod($archivo, 0777);
echo substr(sprintf('%o', fileperms($archivo)), -3) . "\n";
chmod($archivo, 0700);
echo substr(sprintf('%o', fileperms($archivo)), -3) . "\n";

?>
Anuncios
Anuncios

Primero asignaremos el nombre del archivo a una variable. Lo siguiente es mostrar los permisos del archivo mediante fileperms, este lo hara en formato octal. Luego cambiamos el permiso mediante chmod y le asignaremos el permiso de control total. Nuevamente mostramos los permisos sobre el archivo, de la misma manera anterior. Por ultimo, volvemos a cambiar los permisos del archivo para que solo el usuario tenga permisos sobre el mismo y finalmente mostramos nuevamente los permisos del archivo. Ejecutemos para ver como es su salida:

$ php cambio.php
644
644
644
$
Anuncios

Observen que siempre nos muestra los permisos del primer llamado, esto es asi porque toma el valor del cache y no verifica al archivo. Pero si lo verificamos, veremos que si hizo las modificaciones:

-rwx------ 1 tinchicus tinchicus 0 dic  5 16:52 archivo.txt
Anuncios

Para poder solucionar la visualizacion debemos modificar el archivo de la siguiente manera:

<?php

$archivo = "archivo.txt";
echo substr(sprintf('%o', fileperms($archivo)), -3) . "\n";
chmod($archivo, 0777);
clearstatcache();
echo substr(sprintf('%o', fileperms($archivo)), -3) . "\n";
chmod($archivo, 0700);
clearstatcache();
echo substr(sprintf('%o', fileperms($archivo)), -3) . "\n";

?>
Anuncios

Simplemente agregamos dos llamados a la funcion clearstatcache antes del llamado a la funcion para mostrar los nuevos permisos despues de los cambios realizados con chmod. Si lo ejecutamos nuevamente tendremos la siguiente salida:

$ php cambio.php
700
777
700
$
Anuncios

Observen como tenemos los permisos establecidos en la primera pasada y los nuevos permisos que establecemos en el codigo pero ahora si podemos verlo. Esto es gracias a la limpieza del cache antes de cada llamada para mostrar a los permisos. Es su unica utilidad pero si quieren saber mas sobre chmod les recomiendo visitar el siguiente post:

[ post chmod ]

Anuncios

En resumen, hoy hemos visto a clearstatcache, que es, para que sirve, como se utiliza y un ejemplo para ver su conducta. Espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donatión

It’s for site maintenance, thanks!

$1.50