Position actuelle: Accueil> Derniers articles> Comment combiner des fonctions File_exists et IS_Readable dans PHP pour déterminer si un fichier est disponible?

Comment combiner des fonctions File_exists et IS_Readable dans PHP pour déterminer si un fichier est disponible?

gitbox 2025-06-09

1. Introduction à la fonction file_exists ()

File_exists () est une fonction intégrée de PHP, qui est utilisée pour déterminer si le fichier ou le répertoire spécifié existe. Son utilisation de base est la suivante:

 $path = '/path/to/file.txt';

if (file_exists($path)) {
    echo 'Le fichier existe';
} else {
    echo 'Le fichier n'existe pas';
}

Cette fonction renvoie une valeur booléenne: true si le fichier ou le répertoire existe, autrement faux .

2. Introduction à la fonction is_readable ()

is_readable () est également une fonction intégrée pour déterminer si le chemin spécifié est lisible. Ceci est particulièrement important pour les opérations de lecture de fichiers. Par exemple:

 $path = '/path/to/file.txt';

if (is_readable($path)) {
    echo 'Le fichier lisible';
} else {
    echo 'Fichier non lisible';
}

Cette fonction renvoie également une valeur booléenne: true si un fichier ou un répertoire peut être lu.

3. Combinant les deux pour déterminer si le fichier est "disponible"

L'utilisation de file_exists () à elle seule ne garantit pas entièrement que les opérations de lecture ultérieures peuvent réussir. Par exemple, bien qu'un fichier existe, mais l'utilisateur actuel n'a pas la permission de le lire, alors directement à l'aide de fichier_get_contents () provoquera des avertissements ou même des interruptions de programme. Par conséquent, la meilleure pratique consiste à utiliser deux fonctions en combinaison:

 $path = '/var/www/gitbox.net/uploads/data.json';

if (file_exists($path) && is_readable($path)) {
    $content = file_get_contents($path);
    echo 'Le contenu du fichier est le suivant:<br>';
    echo nl2br(htmlspecialchars($content));
} else {
    echo 'Le fichier n&#39;existe pas或不可读';
}

Dans cet exemple, le programme détermine d'abord si le fichier existe, puis détermine s'il est lisible. Ce n'est que lorsque les deux conditions sont remplies, File_get_Contents () sera exécutée pour lire le contenu du fichier.

4. Exemples de scénarios applicables

Par exemple, nous avons un fichier de configuration config.json , qui est stocké dans le répertoire racine du projet. Lors de l'initialisation du projet, vous devrez peut-être lire les informations de configuration dans le fichier:

 $configPath = __DIR__ . '/config/config.json';

if (file_exists($configPath) && is_readable($configPath)) {
    $config = json_decode(file_get_contents($configPath), true);
    // Continuez à traiter la configuration
} else {
    die('Le fichier de configuration est manquant ou illisible');
}

Cette méthode peut éviter de nombreux problèmes causés par la non-existence de fichiers ou des autorisations insuffisantes, et améliorer la robustesse du programme.

5. CONSEILS: Faites attention lors du traitement des fichiers distants

Si vous souhaitez déterminer si un fichier distant (tel que https://gitbox.net/resources/info.txt ) existe et est lisible, file_exists () et is_readable () ne s'appliquent pas. Ils ne sont valables que pour les systèmes de fichiers locaux. Pour déterminer si un fichier distant existe, vous devez généralement utiliser Curl ou Get_heders () et d'autres méthodes:

 $url = 'https://gitbox.net/resources/info.txt';
$headers = @get_headers($url);
if ($headers && strpos($headers[0], '200') !== false) {
    echo '远程Le fichier existe';
} else {
    echo '远程Le fichier n&#39;existe pas或无法访问';
}

Résumer

Dans le développement quotidien, si vous avez besoin de lire un fichier, assurez-vous de confirmer sa "disponibilité" d'abord - cela inclut si le fichier existe et s'il a lu les autorisations. file_exists () et is_readable () sont deux outils principaux pour atteindre cet objectif. Les utiliser raisonnablement peut rendre votre programme plus robuste et plus sûr.