PHP | función estadística ( )

La función stat() en PHP es una función incorporada que se utiliza para devolver información de un archivo. La función stat(0) devuelve estadísticas de un archivo que es una array con los siguientes elementos:

  • [0] o [dev] – Número de dispositivo
  • [1] o [ino]: número de iNode
  • [2] o [modo]: modo de protección de iNode
  • [3] o [nlink] – Número de enlaces
  • [4] o [uid]: ID de usuario del propietario
  • [5] o [gid]: ID de grupo del propietario
  • [6] o [rdev]: tipo de dispositivo de iNode
  • [7] o [tamaño] – Tamaño en bytes
  • [8] o [atime] – Último acceso (como marca de tiempo de Unix)
  • [9] o [mtime]: última modificación (como marca de tiempo de Unix)
  • [10] o [ctime]: último cambio de iNode (como marca de tiempo de Unix)
  • [11] o [blksize] – Tamaño de bloque del sistema de archivos IO
  • [12] o [bloques] – Número de bloques asignados

La función stat() acepta el nombre del archivo como parámetro y devuelve una array con los elementos mencionados anteriormente en caso de éxito y False en caso de falla.
Si el nombre del archivo es un enlace simbólico, las estadísticas son del archivo en sí, no del enlace simbólico.

Sintaxis:

stat(filename)

Parámetros usados:
La función stat() en PHP acepta un parámetro.

  1. filename : Especifica el nombre del archivo cuyas estadísticas desea conocer.

Valor de retorno:
devuelve una array con los elementos mencionados anteriormente en caso de éxito y falso en caso de falla.

Errores y excepciones

  1. Los resultados de la función stat() difieren de un servidor a otro.
  2. El resultado de la función stat() se almacena en caché y, por lo tanto, se debe usar la función clearstatcache() para borrar el caché.
  3. La función stat() genera una E_WARNING en caso de falla.
  4. En plataformas Windows, el ID de grupo del propietario, el ID de usuario del propietario y el número de iNode son siempre 0.
  5. Para archivos de más de 2 GB, algunas funciones del sistema de archivos pueden arrojar resultados inesperados ya que el tipo de entero de PHP está firmado y muchas plataformas usan enteros de 32 bits.

Ejemplos:

Input : $test = stat('gfg.txt');
        echo 'Access time: ' .$test['atime'];
        echo '
Modification time: ' .$test['mtime']; echo '
Device number: ' .$test['dev']; Output :Access time: 1141666750 Modification time: 1135897503 Device number: 0 Input : $test = stat('gfg.txt'); echo 'Access time: ' .$test[8]; echo '
Modification time: ' .$test[9]; echo '
Device number: ' .$test[0]; Output : Access time: 1141666750 Modification time: 1135897503 Device number: 0 Input : $test = stat('gfg.txt'); $access_time = $stat['atime'] + 18000; if (touch($test, time(), $access_time)) { echo 'Access time changed to 5 hours in the past!'; } else { echo 'Access time could not be changed.'; } Output : Access time changed to 5 hours in the past!

Los siguientes programas ilustran la función stat().

Supongamos que hay un archivo llamado «gfg.txt»

Programa 1

<?php
$test = stat('gfg.txt');
//using stat() along with name index to display access time
echo 'Access time: ' .$test['atime'];
  
//using stat() along with name index  to display modification time
echo '<br />Modification time: ' .$test['mtime'];
  
//using stat() along with name index  to display device number
echo '<br />Device number: ' .$test['dev'];
?>

Producción:

Access time: 1141666750
Modification time: 1135897503
Device number: 0

Programa 2

<?php
$test = stat('gfg.txt');
  
//using stat() along with number index to display access time
echo 'Access time: ' .$test[8];
  
//using stat() along with number index to display modification time
echo '<br />Modification time: ' .$test[9];
  
//using stat() along with number index to display device number
echo '<br />Device number: ' .$test[0];
?>

Producción:

Access time: 1141666750
Modification time: 1135897503
Device number: 0

Programa 3

<?php
$test = stat('gfg.txt');
  
//changing access time to 5 hours in the past
$access_time = $stat['atime'] + 18000;
  
//using touch() function to change the access time
if (touch($test, time(), $access_time)) 
{
   echo 'Access time changed to 5 hours in the past!';
} 
else 
{
   echo 'Access time could not be changed.';
}
  
?>

Producción:

Access time changed to 5 hours in the past!

Referencia:
http://php.net/manual/en/function.stat.php

Publicación traducida automáticamente

Artículo escrito por Shubrodeep Banerjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *