Bonjour. visiteurs jour : 41
Au président
Beauté santé
Infos loisirs
Ensemble
Jean
Informatique
Einstein
Santé corona
Les joies de l'informatique et de l'internet !
Accueil - Disques - Excel - Informatique - Infos - Internet - Javascript - logiciels - Programation - Sites RJ - Vidéo - Plan du site -
Définir le fichier $fic= "mon_dossier/mon_fichier.ext"; Vérifier si le fichier existe if (file_exists($fic)) { … 1) Soit : Lire tout le fichier dans un tableau : $tableau = file($fic); Le nombre de lignes du fichier = count($tableau) ; Pour afficher le fichier While ( list ( $cle,$val ) = each ($tableau)) { echo $val."<br>"; } Soit ouvrir le fichier $fp = fopen($fic,"r"); Lire n caractères et positionne le pointeur sur le caractère suivant Les caractères dans le fichier sont pointés de 1 à n Au départ le pointeur est sur 0 (s'arrête avant s'il rencontre \n ou la fin du fichier eof ) echo fgets($fic, 4096); // ici n= 4096 = 1 secteur La position du pointeur est dans ftell($fic); si on a lu 4096 c le pointeur contient la dernière position lue=4096. Elle est modifiable : $ptr = fseek($fp,$ptr-10); lire tout le fichier while (!feof($fp)) { echo fgets($fp, 4096)."<br>"; } fclose($fp); Variante $lg_fic=filesize("le_fichier.txt"); $fp=fopen("le_fichier.txt","r"); $page=fread($fp,$lg_fic); fclose($fp); en plus compact Récupère l'ensemble du fichier dans une variable texte $fichier = fread(fopen("test.txt", "r"), filesize("test.txt")); echo $fichier; Voir aussi ■file() - Lit le fichier et renvoie le résultat dans un tableau ■fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier ■fread() - Lecture du fichier en mode binaire ■readfile() - Affiche un fichier à l’écran ■file_get_contents lit le contenu du fichier ■file_put_contents() - Écrit un contenu dans un fichier ■stream_get_contents() - Lit tout un flux dans une chaîne ■stream_context_create() - Crée un contexte de flux $page=implode("",file("http://www.asp-php.net/tutorial/asp-php/lecture.php")); Nota : implode Retourne une chaîne contenant la représentation en chaîne de caractères de tous les éléments du tableau ici file(), dans le même ordre, avec la chaîne "", placée entre chaque élément. $chaine=implode($sepateur, $tableau) If ( !$fp = fopen("../fichier.txt","r") echo « échec à l’ouverture »; //lecture if (!($f=fopen("exemple.txt","r"))) exit("Unable to open file!"); if (!($f=fopen("exemple.txt","r"))) exit("Unable to open file!"); else Lire le fichier… r ouverture en lecture seulement r+ ouverture en lecture et écriture w ouverture en écriture seulement (crée le fichier s'il n'existe pas) w+ ouverture en lecture et écriture (crée le fichier si existe pas) a ouverture en écriture seulement avec ajout du contenu à la fin du fichier (crée le fichier si existe pas) a+ ouverture en lecture et écriture avec ajout du contenu à la fin du fichier (crée le fichier si existe pas) x Crée et ouvre le fichier en lecture seule. Si le fichier existe fopen() va échouer nota à partir de PHP 4.3.2 x+ Crée et ouvre le fichier en lecture et écriture; $fp = fopen("ftp://phpfrance.com/pub/fichier.txt","w"); // un ftp ? la fonction fopen permet d'ouvrir des fichiers présents sur le web grâce à leur URL. Pour récupérer le contenu d'une page d'un site web : $fp = fopen("http://www.commentcamarche.net","r"); //lecture du fichier $page=""; while (!feof($fp)) { //on parcourt tout le fichier jusqu’à la fin (feof) $page .= fgets($fp, 4096); // lecture du contenu par paquets de 4096c. } Récupérer le titre de la page Web ( texte compris entre les balises <TITLE> et </TITLE>). $titre = eregi("<title>(.*)</title>",$page,$regs); //on isole le titre echo $regs[1]; // ??? Le plus simple sans open ni close ! $fichier=file_get_contents('test.txt');//récupère le contenu du fichier et le place dans la variable $fichier readfile() identique à file_get_contents() sauf qu'elle retourne le contenu du fichier vers la sortie standard et retourne le nombre d'octets lus. On l’utilise donc dans le cas où l'on ne veut pas avoir le fichier dans une chaîne mais l’afficher à l’écran @$fichier=readfile("$rep."/".$page) ; // Affiche le fichier et le place dans la variable $fichier. $tableau = file('test.txt'); //Place le contenu du fichier dans un tableau, if(is_array($tableau)) { //Si la variable $tableau est bien un tableau, on peut continuer $contenu_fichier = ''; foreach($tableau AS $ligne) { $contenu_fichier .= $ligne; } echo $contenu_fichier; //Affiche le contenu du fichier, notez que l'on a pas besoin d'utiliser fclose() ici } fonction file_exists() : if (file_exists("essai.txt")) echo "Fichier existant"; else echo "Introuvable !"; $fp=fopen("exemple.txt","w") fputs ($fp, "XYZ…"); fclose ($fp); Nota : fseek ($fp, 0); fseek permet de se positionner dans un fichier pour écrire, ici on se place au début en position=0 fputs($fp, "ligne1\nligne 2\naaa tabulation\tBBB"); //fputs() (aussi parfois appelée fwrite() comme file_get_contents pas besoin d’open ni de close ultra simple, écrit tout d’un coup exemple $file = "people.txt"; $fic = file_get_contents($file); $contenu .= "Jean Dupond\n"; // on ajoute un nom Fichiers texte : Noter le \n qui est un retour à la ligne comme le <BR> dans un document html Prévoir <br>\n si le fichier est html et doit être lu dans un éditeur texte file_put_contents($file, $contenu); // On écrit le résultat dans le fichier On peut écrire en ajout : file_put_contents("people.txt", "Jean Dupond\n", FILE_APPEND); file_put_contents"($file, $ajout."\n", FILE_APPEND); fclose($fp); // On ferme le fichier fpassthru() permet d'envoyer le contenu du fichier dans la fenêtre du navigateur. booléen fpassthru(entier etat); Cette fonction envoie le contenu du fichier à partir de la position courante dans le fichier, c'est-à-dire qu'il est possible par exemple de lire quelques lignes avec fgets(), puis d'envoyer le reste au navigateur... if (file_exists($filename)) … mkdir('testdir', 0777); if( file_exists ( $fichier)) unlink( $fichier ) ; Alternative: @unlink( $fichier ) ; rmdir pour la suppression de dossiers. Pour supprimer l'intégralité des fichiers d'une même extension : foreach (glob("*.jpg") as $filename) { unlink($filename); } Il peut arriver un problème de type permission refusée Warning: unlink(/home/www/test.txt): Permission denied in /home/www/testeffacer.php on line 7 Cette erreur provient d'un manque de droit sur les fichiers. Utilisez alors la fonction chmod pour vous donner le droit d’effacer ! umask(0000); chmod(fichier,0777); unlink (fichier); Je souhaiterais savoir s'il est possible de recevoir les données d'un site Web, de les mettre en forme puis de les afficher Solution proposée : $text = file_get_contents("http://lesite.com" ); if (preg_match_all('#<td><nobr>(.*) </nobr></td>#i', $text, $match_nom)) //regex recherche des données { echo $match_nom[1][1]; //afficher la donnée } Coté HTML les données vont contenir des fichiers <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="submit" value="envoyer" /> </div> type="file" =fichier </form> Le submit envoie le ficier au programme upload.php dans les varaibles suivantes : $_FILES['fichier']['name'] -> Le nom original du fichier client (fichier= le name du input type file $_FILES['fichier']['type'] -> Le type MIME du fichier. Non sûr (jpg? Png?) $_FILES['fichier']['size'] -> La taille, en octets, du fichier téléchargé. $_FILES['fichier']['tmp_name']-> Le nom temporaire du fichier sur le +serveur $_FILES['fichier']['error'] -> Le code d'erreur if (!empty($_FILES['fichier']['tmp_name']) && is_uploaded_file($_FILES['fichier']['tmp_name'])) { // Le fichier a bien été téléchargé. Par sécurité on utilise getimagesize plutot que les variables $_FILES list($larg,$haut,$type,$attr) = getimagesize($_FILES['fichier']['tmp_name']); echo $larg." ".$haut." ".$type." ".$attr; if (move_uploaded_file($_FILES['fichier']['tmp_name'],'images/toto.jpg')) echo "Copie réussie"; }else echo "echec de la copie"; } else echo "mauvais type de fichier"; Vérifier le type de fichier par so extension : $Extensions_ok = array("txt", "rtf", "doc", "pdf","jpg", "jepg", "png"); if (in_array(end(explode(".", $fileName)), $Extensions_ok)) //echo "Bon type de fichier"; ………. else { echo "erreur de type ou dextension"; exit;}
Fichiers
Théorie sur les fichiers
Lecture d’une page Web distante
Open de fichier
Lecture de fichier
file_get_contents
Afficher un fichier
readfile("$rep."/".$page) affiche le fichier à l’endroit de la commande
Un fichier peut se lire comme un tableau de lignes
Existence d'un fichier
Ecriture d'un fichier
Ecriture dans un fichier
fputs
file_put_contents($file, $current);
Fermeture
Existence d’un fichier
Créer un répertoire
Suppression de fichier, de répertoire
Lire une page Web
Télécharger un fichier par POST
ex pour une image jpg