PHP Obtenir des informations sur le fichier


Exemple

Vérifier si un chemin est un répertoire ou un fichier

La fonction is_dir renvoie si l'argument est un répertoire, alors que is_file renvoie si l'argument est un fichier. Utilisez file_exists pour vérifier si c'est le cas.

$dir  = "/this/is/a/directory";
$file = "/this/is/a/file.txt";

echo is_dir($dir) ? "$dir is a directory" : "$dir is not a directory", PHP_EOL,
    is_file($dir) ? "$dir is a file" : "$dir is not a file", PHP_EOL,
    file_exists($dir) ? "$dir exists" : "$dir doesn't exist", PHP_EOL,
    is_dir($file) ? "$file is a directory" : "$file is not a directory", PHP_EOL,
    is_file($file) ? "$file is a file" : "$file is not a file", PHP_EOL,
    file_exists($file) ? "$file exists" : "$file doesn't exist", PHP_EOL;

Cela donne:

/this/is/a/directory is a directory
/this/is/a/directory is not a file
/this/is/a/directory exists
/this/is/a/file.txt is not a directory
/this/is/a/file.txt is a file
/this/is/a/file.txt exists

Vérification du type de fichier

Utilisez filetype pour vérifier le type d'un fichier, qui peut être:

  • fifo
  • char
  • dir
  • block
  • link
  • file
  • socket
  • unknown

En passant le nom du fichier à l' filetype directement:

echo filetype("~"); // dir

Notez que filetype renvoie false et déclenche un E_WARNING si le fichier n'existe pas.

Vérification de la lisibilité et de l'écriture

Passer le nom du fichier aux fonctions is_writable et is_readable vérifie si le fichier est accessible en écriture ou en lecture respectivement.

Les fonctions renvoient false si le fichier n'existe pas.

Vérification de l'accès au fichier / modification de l'heure

L'utilisation de filemtime et de fileatime renvoie l'horodatage de la dernière modification ou de l'accès au fichier. La valeur de retour est un horodatage Unix - voir Travailler avec les dates et l'heure pour plus de détails.

echo "File was last modified on " . date("Y-m-d", filemtime("file.txt"));
echo "File was last accessed on " . date("Y-m-d", fileatime("file.txt"));

Obtenir des parties de chemin avec fileinfo

$fileToAnalyze = ('/var/www/image.png');

$filePathParts = pathinfo($fileToAnalyze);

echo '<pre>';
   print_r($filePathParts);
echo '</pre>';

Cet exemple affichera:

Array
(
    [dirname] => /var/www
    [basename] => image.png
    [extension] => png
    [filename] => image
)

Qui peut être utilisé comme:

$filePathParts['dirname']
$filePathParts['basename']
$filePathParts['extension']
$filePathParts['filename']
Paramètre Détails
$ path Le chemin complet du fichier à analyser
option $ Une des quatre options disponibles [PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION ou PATHINFO_FILENAME]
  • Si une option (le second paramètre) n'est pas transmise, un tableau associatif est renvoyé, sinon une chaîne est renvoyée.
  • Ne valide pas que le fichier existe.
  • Simplement analyse la chaîne en parties. Aucune validation n'est faite sur le fichier (pas de vérification de type mime, etc.)
  • L'extension est simplement la dernière extension de $path Le chemin du fichier image.jpg.png serait .png même s'il s'agit techniquement d'un fichier .jpg . Un fichier sans extension ne renverra pas d'élément d'extension dans le tableau.