Submit Search
Upload
PHP5 et les fichiers
•
0 likes
•
4,027 views
Jean-Marie Renouard
Follow
Présentation de la gestion des fichiers avec PHP 5
Read less
Read more
Engineering
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 40
Download now
Download to read offline
Recommended
Gestion de formulaires en PHP
Gestion de formulaires en PHP
Jean-Marie Renouard
Email et PHP5
Email et PHP5
Jean-Marie Renouard
Syntaxe du langage PHP
Syntaxe du langage PHP
Jean-Marie Renouard
Le client HTTP PHP5
Le client HTTP PHP5
Jean-Marie Renouard
Fichier XML et PHP5
Fichier XML et PHP5
Jean-Marie Renouard
Client base de données en PHP5
Client base de données en PHP5
Jean-Marie Renouard
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Jean-Marie Renouard
Le client FTP de PHP5
Le client FTP de PHP5
Jean-Marie Renouard
Recommended
Gestion de formulaires en PHP
Gestion de formulaires en PHP
Jean-Marie Renouard
Email et PHP5
Email et PHP5
Jean-Marie Renouard
Syntaxe du langage PHP
Syntaxe du langage PHP
Jean-Marie Renouard
Le client HTTP PHP5
Le client HTTP PHP5
Jean-Marie Renouard
Fichier XML et PHP5
Fichier XML et PHP5
Jean-Marie Renouard
Client base de données en PHP5
Client base de données en PHP5
Jean-Marie Renouard
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Jean-Marie Renouard
Le client FTP de PHP5
Le client FTP de PHP5
Jean-Marie Renouard
Javascript et JQuery
Javascript et JQuery
Jean-Marie Renouard
Présentation de PHP
Présentation de PHP
Jean-Marie Renouard
MVC / Frameworks PHP
MVC / Frameworks PHP
Jean-Marie Renouard
Configuration PHP5
Configuration PHP5
Jean-Marie Renouard
SQL et MySQL
SQL et MySQL
Jean-Marie Renouard
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
Jean-Marie Renouard
Les structures de données PHP5
Les structures de données PHP5
Jean-Marie Renouard
php2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Abdoulaye Dieng
Php & My Sql
Php & My Sql
guest6c050e
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Hugo Hamon
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
Damien Seguy
Formation PHP
Formation PHP
kemenaran
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
Christophe Villeneuve
Pratique de la programmation en go
Pratique de la programmation en go
kader15
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
Yves Van Goethem
Cours php
Cours php
csskaled
Bases de PHP - Partie 1
Bases de PHP - Partie 1
Régis Lutter
Introduction au Jquery
Introduction au Jquery
Abdoulaye Dieng
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
Kristen Le Liboux
Php 7.4 2020-01-28 - afup
Php 7.4 2020-01-28 - afup
Julien Vinber
Plein phar
Plein phar
Frederic Hardy
More Related Content
What's hot
Javascript et JQuery
Javascript et JQuery
Jean-Marie Renouard
Présentation de PHP
Présentation de PHP
Jean-Marie Renouard
MVC / Frameworks PHP
MVC / Frameworks PHP
Jean-Marie Renouard
Configuration PHP5
Configuration PHP5
Jean-Marie Renouard
SQL et MySQL
SQL et MySQL
Jean-Marie Renouard
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
Jean-Marie Renouard
Les structures de données PHP5
Les structures de données PHP5
Jean-Marie Renouard
php2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Abdoulaye Dieng
Php & My Sql
Php & My Sql
guest6c050e
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Hugo Hamon
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
Damien Seguy
Formation PHP
Formation PHP
kemenaran
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
Christophe Villeneuve
Pratique de la programmation en go
Pratique de la programmation en go
kader15
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
Yves Van Goethem
Cours php
Cours php
csskaled
Bases de PHP - Partie 1
Bases de PHP - Partie 1
Régis Lutter
Introduction au Jquery
Introduction au Jquery
Abdoulaye Dieng
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
Kristen Le Liboux
What's hot
(20)
Javascript et JQuery
Javascript et JQuery
Présentation de PHP
Présentation de PHP
MVC / Frameworks PHP
MVC / Frameworks PHP
Configuration PHP5
Configuration PHP5
SQL et MySQL
SQL et MySQL
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
Les structures de données PHP5
Les structures de données PHP5
php2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Php & My Sql
Php & My Sql
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
Formation PHP
Formation PHP
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
Pratique de la programmation en go
Pratique de la programmation en go
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
Cours php
Cours php
Bases de PHP - Partie 1
Bases de PHP - Partie 1
Introduction au Jquery
Introduction au Jquery
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
Similar to PHP5 et les fichiers
Php 7.4 2020-01-28 - afup
Php 7.4 2020-01-28 - afup
Julien Vinber
Plein phar
Plein phar
Frederic Hardy
Cours Big Data Chap3
Cours Big Data Chap3
Amal Abid
Manipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptx
olfaharrabi2
Commandes usuelle linux
Commandes usuelle linux
Fabrice Sonzahi
Php 5.3
Php 5.3
epixelic
Formation Linux - Initiation
Formation Linux - Initiation
robertpluss
Utilisation de commande chown dans kali linux
Utilisation de commande chown dans kali linux
ImnaTech
Hdfs
Hdfs
Ines Slimene
C1 linux et intro c
C1 linux et intro c
bekalecharles
C1 linux et intro c
C1 linux et intro c
Oussama Lahssini
Bash bonnes pratiques
Bash bonnes pratiques
Idriss Neumann
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
julien pauli
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Hugo Hamon
Gestion des disques et des permission sous Linux
Gestion des disques et des permission sous Linux
Oussama Bessrour
Manipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsx
YallaHabibi5
lpi 101 notes de cours
lpi 101 notes de cours
ISIG
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
BertrandCaron4
Theme 8
Theme 8
salmazen
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
Souhaib El
Similar to PHP5 et les fichiers
(20)
Php 7.4 2020-01-28 - afup
Php 7.4 2020-01-28 - afup
Plein phar
Plein phar
Cours Big Data Chap3
Cours Big Data Chap3
Manipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptx
Commandes usuelle linux
Commandes usuelle linux
Php 5.3
Php 5.3
Formation Linux - Initiation
Formation Linux - Initiation
Utilisation de commande chown dans kali linux
Utilisation de commande chown dans kali linux
Hdfs
Hdfs
C1 linux et intro c
C1 linux et intro c
C1 linux et intro c
C1 linux et intro c
Bash bonnes pratiques
Bash bonnes pratiques
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Gestion des disques et des permission sous Linux
Gestion des disques et des permission sous Linux
Manipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsx
lpi 101 notes de cours
lpi 101 notes de cours
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
Theme 8
Theme 8
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
More from Jean-Marie Renouard
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Jean-Marie Renouard
ManuelDeSecurite-1.7.pdf
ManuelDeSecurite-1.7.pdf
Jean-Marie Renouard
Manuel de sécurité Linux
Manuel de sécurité Linux
Jean-Marie Renouard
Ssh cookbook v2
Ssh cookbook v2
Jean-Marie Renouard
Ssh cookbook
Ssh cookbook
Jean-Marie Renouard
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Jean-Marie Renouard
Structure de données en PHP
Structure de données en PHP
Jean-Marie Renouard
More from Jean-Marie Renouard
(7)
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
ManuelDeSecurite-1.7.pdf
ManuelDeSecurite-1.7.pdf
Manuel de sécurité Linux
Manuel de sécurité Linux
Ssh cookbook v2
Ssh cookbook v2
Ssh cookbook
Ssh cookbook
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Structure de données en PHP
Structure de données en PHP
Recently uploaded
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
Institut de l'Elevage - Idele
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
Sana REFAI
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
firstjob4
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Ville de Châteauguay
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
yakinekaidouchi1
optimisation logistique MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdf
SoukainaMounawir
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
mansouriahlam
Recently uploaded
(7)
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
optimisation logistique MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdf
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
PHP5 et les fichiers
1.
Jean-Marie Renouard LightPath
2014©
2.
Le logo PHP
est du domaine public http://commons.wikimedia.org/wiki/File:PHP-logo.svg Ce document est licencié sous licence ◦Attribution-NonCommercial-ShareAlike ◦CC BY-NC-SA Plus de détails: http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ LightPath 2014© - http://www.jmrenouard.fr 2
3.
Support de format
de fichier Parcours de répertoire Recherche des propriétés d’un fichier Lecture d’un fichier Écriture dans un fichier LightPath 2014© - http://www.jmrenouard.fr 3
4.
Suppression d’un fichier
Copie d’un fichier Fichier temporaire Création d’un fichier vide Analyse d’un fichier de configuration LightPath 2014© - http://www.jmrenouard.fr 4
5.
LightPath 2014© -
http://www.jmrenouard.fr 5
6.
Douzaine de formats
supportés Accès à distance possible Accès aux formats compressés Syntaxe simple LightPath 2014© - http://www.jmrenouard.fr 6
7.
file:// Fichier sur
le disque http:// Fichier sur un serveur Web HTTP ftp:// Fichier sur un serveur FTP php:// Fichier spéciaux PHP ◦Entrée standard ◦Sortie standard ◦Sortie d’erreur ◦Mémoire ◦Zone Temporaire zlib:// Fichier compressé data:// Données au format URL glob:// Expression régulière de recherche phar:// Archive PHAR, standard PHP ssh2:// Fichier accessible depuis un serveur SSH rar:// Fichier archive RAR ogg:// Fichier de musique au format OGG expect:// Données depuis un processus interactif LightPath 2014© - http://www.jmrenouard.fr 7
8.
LightPath 2014© -
http://www.jmrenouard.fr 8
9.
Tri alphabétique Scandir($rep)
◦ récupération des noms de fichier et sous répertoires. Scandir($rep, 1) ◦Idem avec tri descendant LightPath 2014© - http://www.jmrenouard.fr 9
10.
chdir: changement de
répertoire courant getcwd: récupération du répertoire courant LightPath 2014© - http://www.jmrenouard.fr 10
11.
glob($motif, $option) Recherche
selon un motif foreach (glob("*.txt") as $filename) { echo "$filename size " . filesize($filename) . "n"; } LightPath 2014© - http://www.jmrenouard.fr 11
12.
GLOB_MARK : Ajoute
un slash final à chaque dossier retourné GLOB_NOSORT : Retourne les fichiers dans l'ordre initial GLOB_NOESCAPE : Aucun protection de caractère GLOB_ONLYDIR : Ne retourne que les dossiers GLOB_ERR : Stop lors d'une erreur LightPath 2014© - http://www.jmrenouard.fr 12
13.
LightPath 2014© -
http://www.jmrenouard.fr 13
14.
basename : Nom
du fichier dirname : Chemin du fichier fstat : Informations du fichier fileatime : Date de dernier accès filectime : Date de dernier accès à l’inode filemtime : Date de dernier modification fileowner : Identifiant du propriétaire filegroup : Identifiant du propriétaire fileinode : Numéro d'inode du fichier fileperms : Droits d'un fichier filesize : Taille d'un fichier filetype : Type de fichier LightPath 2014© - http://www.jmrenouard.fr 14
15.
is_dir : true
si le fichier est un dossier is_executable : true si le fichier est exécutable is_file : true si le fichier est un fichier régulier is_link : true si le fichier est un lien symbolique is_readable : true si un fichier existe et est accessible en lecture is_uploaded_file : true si le fichier a été téléchargé par HTTP POST is_writable/is_writeable : true si un fichier est accessible en écriture file_exists : true si le fichier existe. LightPath 2014© - http://www.jmrenouard.fr 15
16.
LightPath 2014© -
http://www.jmrenouard.fr 16
17.
file($fich, $option) ◦Tableau
de ligne du fichier Option FILE_USE_INCLUDE_PATH : ◦Recherche le fichier dans l‘include_path. Option FILE_IGNORE_NEW_LINES : ◦Pas de saut de ligne à la fin des éléments Option FILE_SKIP_EMPTY_LINES : ◦Ignore les lignes vides. LightPath 2014© - http://www.jmrenouard.fr 17
18.
file_get_contents: lecture dans
une chaîne de caractère Lecture et recherche dans l’include_path: $file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH) . Lecture de n caractères à partir de x caractères $section = file_get_contents('./people.txt', NULL, NULL, $n, $x); LightPath 2014© - http://www.jmrenouard.fr 18
19.
Fonctions de gestion
de l’état du fichier ◦fopen : ouverture du fichier ◦fclose : fermeture du fichier ◦flock : verrouillage le fichier Fonction de lecture ligne à ligne ◦fgets : récupération de la ligne courante ◦fgetss : idem avec nettoyage HTML ◦fgetcsv: idem avec découpage par délimiteur LightPath 2014© - http://www.jmrenouard.fr 19
20.
$handle = @fopen("/tmp/inputfile.txt",
"r"); $i=1; if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { echo $i++. ») « .$buffer; } if (!feof($handle)) { echo "Erreur: fgets() a échouén"; } fclose($handle); } LightPath 2014© - http://www.jmrenouard.fr 20
21.
$handle = @fopen(«
http://www.perdu.com", "r"); if ($handle) { while (($buffer = fgetss($handle, 4096)) !== false) { echo $buffer; } if (!feof($handle)) { echo "Erreur: fgetss() a échouén"; } fclose($handle); } LightPath 2014© - http://www.jmrenouard.fr 21
22.
function csv_file_to_mysql_table($source_file, $target_table)
{ if (($handle = fopen("$source_file", "r")) === FALSE) { return; } $columns = fgetcsv($handle, 4096, ","); $query_prefix = "INSERT INTO $target_table (".join(",",$columns).")nVALUES"; while (($data = fgetcsv($handle, 4096, ",")) !== FALSE) { $query = "$query_prefix (".join(",", $data).");"; } fclose($handle); } LightPath 2014© - http://www.jmrenouard.fr 22
23.
$fp = fopen("/tmp/lock.txt",
"r+"); Verrouillage exclusif :Lecture et écriture ◦flock($fp, LOCK_EX); Verrouillage partagé: écriture seule ◦ flock($fp, LOCK_SH); Déverrouillage :Lecture et écriture ◦flock($fp, LOCK_UN); fclose($fp) LightPath 2014© - http://www.jmrenouard.fr 23
24.
LightPath 2014© -
http://www.jmrenouard.fr 24
25.
file_put_contents($fichier, $data) ◦Écriture
des données $data dans le fichier $fichier Possibilité d’écrire ligne à ligne ◦fputs: écriture d’une ligne ◦Fputcsv: écriture d’un tableau csv LightPath 2014© - http://www.jmrenouard.fr 25
26.
$list = array
( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"') ); $fp = fopen('file.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp); LightPath 2014© - http://www.jmrenouard.fr 26
27.
aaa,bbb,ccc,dddd 123,456,789 """aaa""","""bbb"""
LightPath 2014© - http://www.jmrenouard.fr 27
28.
LightPath 2014© -
http://www.jmrenouard.fr 28
29.
Unlink : suppression
d’un fichier rmdir: suppression d’un répertoire Le répertoire doit être vide. Les droits nécessaires doivent être acquis LightPath 2014© - http://www.jmrenouard.fr 29
30.
Suppression de tous
les fichiers .jpg $mask = « *.jpg » ; array_map( "unlink", glob( $mask ) ); Suppression de tous les fichiers array_map( "unlink", glob( « * » ) ); Suppression de tous les fichiers des sous répertoires array_map( "unlink", glob( « */* » ) ); LightPath 2014© - http://www.jmrenouard.fr 30
31.
function recursiveDelete($str){ if(is_file($str)){
return @unlink($str); } elseif(is_dir($str)){ $scan = glob(rtrim($str,'/').'/*'); foreach($scan as $index=>$path){ recursiveDelete($path); } return @rmdir($str); } } LightPath 2014© - http://www.jmrenouard.fr 31
32.
copy($file, $copy): ◦copie
de fichier ◦Duplication du contenu Attention à la durée rename: ◦renommage de fichier ◦ Pas de copie de donnée LightPath 2014© - http://www.jmrenouard.fr 32
33.
LightPath 2014© -
http://www.jmrenouard.fr 33
34.
touch: ◦création d’un
fichier vide ◦Mise à jour de la date de dernière modification ftruncate ◦Vide le contenu du fichier ◦Mise à jour de la date de dernière modification LightPath 2014© - http://www.jmrenouard.fr 34
35.
tmpfile: création d’un
fichier temporaire fclose provoque la suppression du ficher temporaire. tmpnam: création d’un nom unique pour fichier temporaire sys_get_temp_dir : récupération du répertoire temporaire du système. LightPath 2014© - http://www.jmrenouard.fr 35
36.
LightPath 2014© -
http://www.jmrenouard.fr 36
37.
parse_ini_file: analyse le
fichier de configuration format INI. 2ème paramètre: True si création de sous tableau. Attention, les fichiers INI sont lisibles par navigateur Web. LightPath 2014© - http://www.jmrenouard.fr 37
38.
; Ceci est
un fichier de configuration ; Les commentaires commencent par ';', comme dans php.ini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = "/usr/local/bin" URL = http://www.example.com/~username [third_section] phpversion[] = "5.0" phpversion[] = "5.1" phpversion[] = "5.2" phpversion[] = "5.3" LightPath 2014© - http://www.jmrenouard.fr 38
39.
print_r(parse_ini_file($ini_file, true)); Array
( ◦[first_section] => Array ( [one] => 1 [five] => 5 [animal] => Dodo bird ) ◦[second_section] => Array ( [path] => /usr/local/bin [URL] => http://www.example.com/~username ) ◦[third_section] => Array ( [phpversion] => Array ( [0] => 5.0 [1] => 5.1 [2] => 5.2 [3] => 5.3 ) ) LightPath 2014© - http://www.jmrenouard.fr 39
40.
LightPath: ◦Société de
conseil et d’ingénierie ◦Formations, Conseil, Audit et mise en oeuvre ◦jmrenouard@lightpath.fr Jean-Marie RENOUARD ◦jmrenouard@gmail.com ◦Twitter: @jmrenouard ◦http://www.jmrenouard.fr LightPath 2014© - http://www.jmrenouard.fr 40
Download now