Forum und email

file

(PHP 4, PHP 5)

file — Lit le fichier et renvoie le résultat dans un tableau

Description

array file ( string $filename [, int $flags [, resource $context ]] )

file() est similaire à file_get_contents(), ormis le fait que file() retourne le fichier filename dans un tableau. Chaque élément du tableau correspond à une ligne du fichier, et les retour-chariots sont placés en fin de ligne.

Le paramètre optionnel flags peut être une ou plusieurs des constantes suivantes :

FILE_USE_INCLUDE_PATH
Recherche le fichier dans l'include_path.
FILE_IGNORE_NEW_LINES
N'ajoute pas de nouvelle ligne à la fin de chaque élément du tableau
FILE_SKIP_EMPTY_LINES
Ignore les lignes vides

Note: Avant PHP 5.0.0, le paramètreflags ne couvre que l'include_path et est activé s'il vaut 1.

Example#1 Exemple avec file()

<?php
// Lit une page web dans un tableau.
$lines file ('https://www.example.com/');

// Affiche toutes les lignes du tableau comme code HTML, avec les numéros de ligne
foreach ($lines as $line_num => $line) {
    echo 
'Ligne No <strong>' $line_num '</strong> : ' htmlspecialchars($line) . '<br />'."\n";
}

// Un autre exemple, pour obtenir une page web dans une chaîne. Voir aussi la fonction file_get_contents().
$html implode (''file ('https://www.example.com/'));
?>

Tip

Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Liste des protocoles supportés pour une liste des protocoles URL supportés.

Note: Chaque ligne du tableau résultant inclura la fin de ligne, tant que FILE_IGNORE_NEW_LINES est utilisé, donc, vous avez toujours besoin d'utiliser la fonction rtrim() si vous ne voulez pas de fin de lignes.

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Note: Depuis PHP 4.3.0, vous pouvez utiliser file_get_contents() pour lire le contenu d'un fichier dans une chaîne.
En PHP 4.3.0, file() est désormais compatible avec les données binaires.

Note: Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contexts, référez-vous à Flux.

Warning

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les warnings. À partir de PHP 4.3.7, le bogue est détecté automatiquement lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer une socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.

Voir aussi readfile(), fopen(), fsockopen(), popen(), file_get_contents(), include() et stream_context_create().