Jean-Marie Renouard LightPath 2014copy
Le logo PHP est du domaine public httpcommonswikimediaorgwikiFilePHP-logosvg
Ce document est licencieacute sous licence Attribution-NonCommercial-ShareAlike
CC BY-NC-SA
Plus de deacutetails httpcreativecommonsorglicensesby-nc-sa30fr
LightPath 2014copy - httpwwwjmrenouardfr 2
Support de format de fichier
Parcours de reacutepertoire
Recherche des proprieacuteteacutes drsquoun fichier
Lecture drsquoun fichier
Eacutecriture dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 3
Suppression drsquoun fichier
Copie drsquoun fichier
Fichier temporaire
Creacuteation drsquoun fichier vide
Analyse drsquoun fichier de configuration
LightPath 2014copy - httpwwwjmrenouardfr 4
LightPath 2014copy - httpwwwjmrenouardfr 5
Douzaine de formats supporteacutes
Accegraves agrave distance possible
Accegraves aux formats compresseacutes
Syntaxe simple
LightPath 2014copy - httpwwwjmrenouardfr 6
file Fichier sur le disque
http Fichier sur un serveur Web HTTP
ftp Fichier sur un serveur FTP
php Fichier speacuteciaux PHP Entreacutee standard Sortie standard Sortie drsquoerreur Meacutemoire Zone Temporaire
zlib Fichier compresseacute
data Donneacutees au format URL
glob Expression reacuteguliegravere 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 Donneacutees depuis un processus interactif
LightPath 2014copy - httpwwwjmrenouardfr 7
LightPath 2014copy - httpwwwjmrenouardfr 8
Tri alphabeacutetique
Scandir($rep) reacutecupeacuteration des noms de fichier et sous
reacutepertoires
Scandir($rep 1) Idem avec tri descendant
LightPath 2014copy - httpwwwjmrenouardfr 9
chdir changement de reacutepertoire courant
getcwd reacutecupeacuteration du reacutepertoire courant
LightPath 2014copy - httpwwwjmrenouardfr 10
glob($motif $option)
Recherche selon un motif
foreach (glob(txt) as $filename)
echo $filename size filesize($filename) n
LightPath 2014copy - httpwwwjmrenouardfr 11
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
Le logo PHP est du domaine public httpcommonswikimediaorgwikiFilePHP-logosvg
Ce document est licencieacute sous licence Attribution-NonCommercial-ShareAlike
CC BY-NC-SA
Plus de deacutetails httpcreativecommonsorglicensesby-nc-sa30fr
LightPath 2014copy - httpwwwjmrenouardfr 2
Support de format de fichier
Parcours de reacutepertoire
Recherche des proprieacuteteacutes drsquoun fichier
Lecture drsquoun fichier
Eacutecriture dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 3
Suppression drsquoun fichier
Copie drsquoun fichier
Fichier temporaire
Creacuteation drsquoun fichier vide
Analyse drsquoun fichier de configuration
LightPath 2014copy - httpwwwjmrenouardfr 4
LightPath 2014copy - httpwwwjmrenouardfr 5
Douzaine de formats supporteacutes
Accegraves agrave distance possible
Accegraves aux formats compresseacutes
Syntaxe simple
LightPath 2014copy - httpwwwjmrenouardfr 6
file Fichier sur le disque
http Fichier sur un serveur Web HTTP
ftp Fichier sur un serveur FTP
php Fichier speacuteciaux PHP Entreacutee standard Sortie standard Sortie drsquoerreur Meacutemoire Zone Temporaire
zlib Fichier compresseacute
data Donneacutees au format URL
glob Expression reacuteguliegravere 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 Donneacutees depuis un processus interactif
LightPath 2014copy - httpwwwjmrenouardfr 7
LightPath 2014copy - httpwwwjmrenouardfr 8
Tri alphabeacutetique
Scandir($rep) reacutecupeacuteration des noms de fichier et sous
reacutepertoires
Scandir($rep 1) Idem avec tri descendant
LightPath 2014copy - httpwwwjmrenouardfr 9
chdir changement de reacutepertoire courant
getcwd reacutecupeacuteration du reacutepertoire courant
LightPath 2014copy - httpwwwjmrenouardfr 10
glob($motif $option)
Recherche selon un motif
foreach (glob(txt) as $filename)
echo $filename size filesize($filename) n
LightPath 2014copy - httpwwwjmrenouardfr 11
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
Support de format de fichier
Parcours de reacutepertoire
Recherche des proprieacuteteacutes drsquoun fichier
Lecture drsquoun fichier
Eacutecriture dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 3
Suppression drsquoun fichier
Copie drsquoun fichier
Fichier temporaire
Creacuteation drsquoun fichier vide
Analyse drsquoun fichier de configuration
LightPath 2014copy - httpwwwjmrenouardfr 4
LightPath 2014copy - httpwwwjmrenouardfr 5
Douzaine de formats supporteacutes
Accegraves agrave distance possible
Accegraves aux formats compresseacutes
Syntaxe simple
LightPath 2014copy - httpwwwjmrenouardfr 6
file Fichier sur le disque
http Fichier sur un serveur Web HTTP
ftp Fichier sur un serveur FTP
php Fichier speacuteciaux PHP Entreacutee standard Sortie standard Sortie drsquoerreur Meacutemoire Zone Temporaire
zlib Fichier compresseacute
data Donneacutees au format URL
glob Expression reacuteguliegravere 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 Donneacutees depuis un processus interactif
LightPath 2014copy - httpwwwjmrenouardfr 7
LightPath 2014copy - httpwwwjmrenouardfr 8
Tri alphabeacutetique
Scandir($rep) reacutecupeacuteration des noms de fichier et sous
reacutepertoires
Scandir($rep 1) Idem avec tri descendant
LightPath 2014copy - httpwwwjmrenouardfr 9
chdir changement de reacutepertoire courant
getcwd reacutecupeacuteration du reacutepertoire courant
LightPath 2014copy - httpwwwjmrenouardfr 10
glob($motif $option)
Recherche selon un motif
foreach (glob(txt) as $filename)
echo $filename size filesize($filename) n
LightPath 2014copy - httpwwwjmrenouardfr 11
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
Suppression drsquoun fichier
Copie drsquoun fichier
Fichier temporaire
Creacuteation drsquoun fichier vide
Analyse drsquoun fichier de configuration
LightPath 2014copy - httpwwwjmrenouardfr 4
LightPath 2014copy - httpwwwjmrenouardfr 5
Douzaine de formats supporteacutes
Accegraves agrave distance possible
Accegraves aux formats compresseacutes
Syntaxe simple
LightPath 2014copy - httpwwwjmrenouardfr 6
file Fichier sur le disque
http Fichier sur un serveur Web HTTP
ftp Fichier sur un serveur FTP
php Fichier speacuteciaux PHP Entreacutee standard Sortie standard Sortie drsquoerreur Meacutemoire Zone Temporaire
zlib Fichier compresseacute
data Donneacutees au format URL
glob Expression reacuteguliegravere 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 Donneacutees depuis un processus interactif
LightPath 2014copy - httpwwwjmrenouardfr 7
LightPath 2014copy - httpwwwjmrenouardfr 8
Tri alphabeacutetique
Scandir($rep) reacutecupeacuteration des noms de fichier et sous
reacutepertoires
Scandir($rep 1) Idem avec tri descendant
LightPath 2014copy - httpwwwjmrenouardfr 9
chdir changement de reacutepertoire courant
getcwd reacutecupeacuteration du reacutepertoire courant
LightPath 2014copy - httpwwwjmrenouardfr 10
glob($motif $option)
Recherche selon un motif
foreach (glob(txt) as $filename)
echo $filename size filesize($filename) n
LightPath 2014copy - httpwwwjmrenouardfr 11
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
LightPath 2014copy - httpwwwjmrenouardfr 5
Douzaine de formats supporteacutes
Accegraves agrave distance possible
Accegraves aux formats compresseacutes
Syntaxe simple
LightPath 2014copy - httpwwwjmrenouardfr 6
file Fichier sur le disque
http Fichier sur un serveur Web HTTP
ftp Fichier sur un serveur FTP
php Fichier speacuteciaux PHP Entreacutee standard Sortie standard Sortie drsquoerreur Meacutemoire Zone Temporaire
zlib Fichier compresseacute
data Donneacutees au format URL
glob Expression reacuteguliegravere 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 Donneacutees depuis un processus interactif
LightPath 2014copy - httpwwwjmrenouardfr 7
LightPath 2014copy - httpwwwjmrenouardfr 8
Tri alphabeacutetique
Scandir($rep) reacutecupeacuteration des noms de fichier et sous
reacutepertoires
Scandir($rep 1) Idem avec tri descendant
LightPath 2014copy - httpwwwjmrenouardfr 9
chdir changement de reacutepertoire courant
getcwd reacutecupeacuteration du reacutepertoire courant
LightPath 2014copy - httpwwwjmrenouardfr 10
glob($motif $option)
Recherche selon un motif
foreach (glob(txt) as $filename)
echo $filename size filesize($filename) n
LightPath 2014copy - httpwwwjmrenouardfr 11
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
Douzaine de formats supporteacutes
Accegraves agrave distance possible
Accegraves aux formats compresseacutes
Syntaxe simple
LightPath 2014copy - httpwwwjmrenouardfr 6
file Fichier sur le disque
http Fichier sur un serveur Web HTTP
ftp Fichier sur un serveur FTP
php Fichier speacuteciaux PHP Entreacutee standard Sortie standard Sortie drsquoerreur Meacutemoire Zone Temporaire
zlib Fichier compresseacute
data Donneacutees au format URL
glob Expression reacuteguliegravere 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 Donneacutees depuis un processus interactif
LightPath 2014copy - httpwwwjmrenouardfr 7
LightPath 2014copy - httpwwwjmrenouardfr 8
Tri alphabeacutetique
Scandir($rep) reacutecupeacuteration des noms de fichier et sous
reacutepertoires
Scandir($rep 1) Idem avec tri descendant
LightPath 2014copy - httpwwwjmrenouardfr 9
chdir changement de reacutepertoire courant
getcwd reacutecupeacuteration du reacutepertoire courant
LightPath 2014copy - httpwwwjmrenouardfr 10
glob($motif $option)
Recherche selon un motif
foreach (glob(txt) as $filename)
echo $filename size filesize($filename) n
LightPath 2014copy - httpwwwjmrenouardfr 11
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
file Fichier sur le disque
http Fichier sur un serveur Web HTTP
ftp Fichier sur un serveur FTP
php Fichier speacuteciaux PHP Entreacutee standard Sortie standard Sortie drsquoerreur Meacutemoire Zone Temporaire
zlib Fichier compresseacute
data Donneacutees au format URL
glob Expression reacuteguliegravere 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 Donneacutees depuis un processus interactif
LightPath 2014copy - httpwwwjmrenouardfr 7
LightPath 2014copy - httpwwwjmrenouardfr 8
Tri alphabeacutetique
Scandir($rep) reacutecupeacuteration des noms de fichier et sous
reacutepertoires
Scandir($rep 1) Idem avec tri descendant
LightPath 2014copy - httpwwwjmrenouardfr 9
chdir changement de reacutepertoire courant
getcwd reacutecupeacuteration du reacutepertoire courant
LightPath 2014copy - httpwwwjmrenouardfr 10
glob($motif $option)
Recherche selon un motif
foreach (glob(txt) as $filename)
echo $filename size filesize($filename) n
LightPath 2014copy - httpwwwjmrenouardfr 11
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
LightPath 2014copy - httpwwwjmrenouardfr 8
Tri alphabeacutetique
Scandir($rep) reacutecupeacuteration des noms de fichier et sous
reacutepertoires
Scandir($rep 1) Idem avec tri descendant
LightPath 2014copy - httpwwwjmrenouardfr 9
chdir changement de reacutepertoire courant
getcwd reacutecupeacuteration du reacutepertoire courant
LightPath 2014copy - httpwwwjmrenouardfr 10
glob($motif $option)
Recherche selon un motif
foreach (glob(txt) as $filename)
echo $filename size filesize($filename) n
LightPath 2014copy - httpwwwjmrenouardfr 11
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
Tri alphabeacutetique
Scandir($rep) reacutecupeacuteration des noms de fichier et sous
reacutepertoires
Scandir($rep 1) Idem avec tri descendant
LightPath 2014copy - httpwwwjmrenouardfr 9
chdir changement de reacutepertoire courant
getcwd reacutecupeacuteration du reacutepertoire courant
LightPath 2014copy - httpwwwjmrenouardfr 10
glob($motif $option)
Recherche selon un motif
foreach (glob(txt) as $filename)
echo $filename size filesize($filename) n
LightPath 2014copy - httpwwwjmrenouardfr 11
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
chdir changement de reacutepertoire courant
getcwd reacutecupeacuteration du reacutepertoire courant
LightPath 2014copy - httpwwwjmrenouardfr 10
glob($motif $option)
Recherche selon un motif
foreach (glob(txt) as $filename)
echo $filename size filesize($filename) n
LightPath 2014copy - httpwwwjmrenouardfr 11
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
glob($motif $option)
Recherche selon un motif
foreach (glob(txt) as $filename)
echo $filename size filesize($filename) n
LightPath 2014copy - httpwwwjmrenouardfr 11
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
GLOB_MARK Ajoute un slash final agrave chaque dossier retourneacute
GLOB_NOSORT Retourne les fichiers dans lordre initial
GLOB_NOESCAPE Aucun protection de caractegravere
GLOB_ONLYDIR Ne retourne que les dossiers
GLOB_ERR Stop lors dune erreur
LightPath 2014copy - httpwwwjmrenouardfr 12
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
LightPath 2014copy - httpwwwjmrenouardfr 13
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
basename Nom du fichier dirname Chemin du fichier fstat Informations du fichier fileatime Date de dernier accegraves filectime Date de dernier accegraves agrave lrsquoinode filemtime Date de dernier modification fileowner Identifiant du proprieacutetaire filegroup Identifiant du proprieacutetaire fileinode Numeacutero dinode du fichier fileperms Droits dun fichier filesize Taille dun fichier filetype Type de fichier
LightPath 2014copy - httpwwwjmrenouardfr 14
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
is_dir true si le fichier est un dossier
is_executable true si le fichier est exeacutecutable
is_file true si le fichier est un fichier reacutegulier
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 eacuteteacute teacuteleacutechargeacute par HTTP POST
is_writableis_writeable true si un fichier est accessible en eacutecriture
file_exists true si le fichier existe
LightPath 2014copy - httpwwwjmrenouardfr 15
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
LightPath 2014copy - httpwwwjmrenouardfr 16
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
file($fich $option) Tableau de ligne du fichier
Option FILE_USE_INCLUDE_PATH
Recherche le fichier dans llsquoinclude_path
Option FILE_IGNORE_NEW_LINES Pas de saut de ligne agrave la fin des eacuteleacutements
Option FILE_SKIP_EMPTY_LINES Ignore les lignes vides
LightPath 2014copy - httpwwwjmrenouardfr 17
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
file_get_contents lecture dans une chaicircne de caractegravere
Lecture et recherche dans lrsquoinclude_path $file = file_get_contents(peopletxt FILE_USE_INCLU
DE_PATH)
Lecture de n caractegraveres agrave partir de x caractegraveres
$section = file_get_contents(peopletxt NULL NULL $n $x)
LightPath 2014copy - httpwwwjmrenouardfr 18
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
Fonctions de gestion de lrsquoeacutetat du fichier fopen ouverture du fichier fclose fermeture du fichier flock verrouillage le fichier
Fonction de lecture ligne agrave ligne
fgets reacutecupeacuteration de la ligne courante fgetss idem avec nettoyage HTML fgetcsv idem avec deacutecoupage par deacutelimiteur
LightPath 2014copy - httpwwwjmrenouardfr 19
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
$handle = fopen(tmpinputfiletxt r)
$i=1
if ($handle) while (($buffer = fgets($handle 4096)) == false) echo $i++ raquo) laquo $buffer if (feof($handle)) echo Erreur fgets() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 20
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
$handle = fopen(laquo httpwwwperducom r)
if ($handle) while (($buffer = fgetss($handle 4096)) == false) echo $buffer if (feof($handle)) echo Erreur fgetss() a eacutechoueacuten fclose($handle)
LightPath 2014copy - httpwwwjmrenouardfr 21
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
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 2014copy - httpwwwjmrenouardfr 22
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
$fp = fopen(tmplocktxt r+)
Verrouillage exclusif Lecture et eacutecriture flock($fp LOCK_EX)
Verrouillage partageacute eacutecriture seule flock($fp LOCK_SH)
Deacuteverrouillage Lecture et eacutecriture flock($fp LOCK_UN)
fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 23
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
LightPath 2014copy - httpwwwjmrenouardfr 24
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
file_put_contents($fichier $data) Eacutecriture des donneacutees $data dans le fichier $fichier
Possibiliteacute drsquoeacutecrire ligne agrave ligne fputs eacutecriture drsquoune ligne
Fputcsv eacutecriture drsquoun tableau csv
LightPath 2014copy - httpwwwjmrenouardfr 25
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
$list = array ( array(aaa bbb ccc dddd) array(123 456 789) array(aaa bbb) ) $fp = fopen(filecsv w) foreach ($list as $fields) fputcsv($fp $fields) fclose($fp)
LightPath 2014copy - httpwwwjmrenouardfr 26
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
aaabbbcccdddd
123456789
aaabbb
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
LightPath 2014copy - httpwwwjmrenouardfr 28
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
Unlink suppression drsquoun fichier
rmdir suppression drsquoun reacutepertoire
Le reacutepertoire doit ecirctre vide
Les droits neacutecessaires doivent ecirctre acquis
LightPath 2014copy - httpwwwjmrenouardfr 29
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
Suppression de tous les fichiers jpg
$mask = laquo jpg raquo array_map( unlink glob( $mask ) )
Suppression de tous les fichiers array_map( unlink glob( laquo raquo ) )
Suppression de tous les fichiers des sous reacutepertoires array_map( unlink glob( laquo raquo ) )
LightPath 2014copy - httpwwwjmrenouardfr 30
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
function recursiveDelete($str) if(is_file($str)) return unlink($str) elseif(is_dir($str)) $scan = glob(rtrim($str)) foreach($scan as $index=gt$path) recursiveDelete($path) return rmdir($str)
LightPath 2014copy - httpwwwjmrenouardfr 31
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
copy($file $copy) copie de fichier
Duplication du contenu
Attention agrave la dureacutee
rename renommage de fichier
Pas de copie de donneacutee
LightPath 2014copy - httpwwwjmrenouardfr 32
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
LightPath 2014copy - httpwwwjmrenouardfr 33
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
touch creacuteation drsquoun fichier vide
Mise agrave jour de la date de derniegravere modification
ftruncate Vide le contenu du fichier
Mise agrave jour de la date de derniegravere modification
LightPath 2014copy - httpwwwjmrenouardfr 34
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
tmpfile creacuteation drsquoun fichier temporaire
fclose provoque la suppression du ficher temporaire
tmpnam creacuteation drsquoun nom unique pour fichier temporaire
sys_get_temp_dir reacutecupeacuteration du reacutepertoire temporaire du systegraveme
LightPath 2014copy - httpwwwjmrenouardfr 35
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
LightPath 2014copy - httpwwwjmrenouardfr 36
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
parse_ini_file analyse le fichier de configuration format INI
2egraveme paramegravetre True si creacuteation de sous tableau
Attention les fichiers INI sont lisibles par navigateur Web
LightPath 2014copy - httpwwwjmrenouardfr 37
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
Ceci est un fichier de configuration Les commentaires commencent par comme dans phpini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = usrlocalbin URL = httpwwwexamplecom~username [third_section] phpversion[] = 50 phpversion[] = 51 phpversion[] = 52 phpversion[] = 53
LightPath 2014copy - httpwwwjmrenouardfr 38
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
print_r(parse_ini_file($ini_file true))
Array ( [first_section] =gt Array (
[one] =gt 1
[five] =gt 5
[animal] =gt Dodo bird
)
[second_section] =gt Array ( [path] =gt usrlocalbin
[URL] =gt httpwwwexamplecom~username
)
[third_section] =gt Array ( [phpversion] =gt Array (
[0] =gt 50
[1] =gt 51
[2] =gt 52
[3] =gt 53
)
)
LightPath 2014copy - httpwwwjmrenouardfr 39
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 40