Gestion des fichiers PHP
PHP dispose d'une variété de fonctions pour créer, lire, télécharger et éditer des fichiers.
Attention?: Merci de manipuler les fichiers avec prudence?!
Vous devez être très prudent lorsque vous manipulez des fichiers. Si vous ne le faites pas correctement, vous pouvez causer des dommages très graves.
Les erreurs courantes sont?:
1. Modification de mauvais fichiers
2. Remplir le disque dur avec des données indésirables
3. Suppression accidentelle du contenu du fichier
Fonction PHP readfile()
readfile($filename)
Fonction?: transmettre un chemin de fichier et générer un fichier
Par exemple, il existe un fichier nommé file.txt avec le contenu suivant?:
Bienvenue dans l'apprentissage du chinois PHP
Utiliser Le code PHP de la fonction readfile() pour lire ce fichier et l'écrire dans le flux de sortie est le suivant (si la lecture est réussie, la fonction readfile() renvoie le nombre d'octets)?:
Nombre d'octets?: anglais occupant un octet, le chinois codé en gbk occupe 2 utf-8 le chinois occupe 3 octets, les espaces et les symboles comptent pour 1
<?php echo readfile("D:WWW/item/file.txt"); ?>
Résultat de l'opération du programme?:
Bienvenue dans l'apprentissage du chinois PHP PHP39
file_get_contentsOpen file
ci-dessus Ouvrez simplement le fichier et il sera affiché directement. Existe-t-il une méthode d'opération qui peut être attribuée à une variable après l'ouverture du fichier ?
PHP fournit certainement cette méthode. Cette méthode est l'un des moyens par lesquels PHP ouvre un fichier et renvoie le contenu. Jetons un coup d'?il à la fonction?:
file_get_contents (string filename)
Fonction?: Transmettre un fichier ou un chemin de fichier, ouvrir le fichier et renvoyer le contenu du fichier. Le contenu du fichier est une cha?ne.
Par exemple, il existe un fichier file.txt avec le contenu suivant?:
J'utilise le file_get_contents open
Utilisez file_get_contents pour ouvrir
<?php $fileName="file.txt"; $filestring = file_get_contents($fileName); echo $filestring; ?>
Résultat en cours d'exécution du programme?:
J'utilise l'open file_get_contents
opérations fopen, fread, fclose lecture de fichiers
fopen ($nom du fichier, mode)
fread ($ressource d'opération, longueur de lecture)
fclose ($opération ressource)
Grace à la fonction ci-dessus, nous expliquerons les méthodes de fonctionnement habituelles des types de ressources?:
1. Ouvrir les ressources
2. Utiliser les fonctions associées pour fonctionner
3. Fermer les ressources
fopenLa fonction de la fonction fopen est d'ouvrir un fichier. Il y a deux paramètres principaux :
1. Le chemin pour ouvrir le fichier
2. Le type de ressource nécessite d'autres fonctions pour faire fonctionner cette ressource. Toutes les ressources doivent être fermées lors de leur ouverture. Fonction
fread La fonction de la fonction est de lire la ressource du fichier ouvert. Lisez la ressource fichier de la longueur spécifiée, lisez-en une partie et déplacez-la vers l'arrière. jusqu'à la fin du fichier.
fcloseFonction La fonction fclose est de fermer les ressources. Les ressources sont ouvertes et fermées.
mode ouvert (tableau ci-dessous)?:
Mode | Description |
Lecture seule. Commencez au début du fichier. | |
Lecture/Ecriture. Commencez au début du fichier. | |
? w+ | Lecture/Ecriture. Ouvre et efface le contenu du fichier?; si le fichier n'existe pas, crée un nouveau fichier. |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
a+?> | Lire/Ajouter. Conservez le contenu du fichier en écrivant à la fin du fichier. ?>?> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?> < ??>?> x?>?> | Uniquement écrire. Créez un nouveau fichier. Si le fichier existe déjà, renvoie FALSE et une erreur. ?>?> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?> < ??>?> x+?>?> | Lire /écrire. Créez un nouveau fichier. Si le fichier existe déjà, renvoie FALSE et une erreur. ?>?> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
t?> | Convertir n en rn sous Windows?>?> < ??>?>
Instance <?php header("Content-type:text/html;charset=utf-8"); //設置編碼 $filename = 'test.txt'; $fp= fopen($filename, "r"); $len = fwrite($fp, '我是一只來自南方的狼,一直在尋找心中的花姑娘'); fclose($fp); print $len .'字節(jié)被寫入了\n'; ?> Résultat de l'exécution du programme?:
nous avons constaté que l'écriture avec r seul échouait Création d'un fichier temporaire Les fichiers que nous avons créés auparavant sont des fichiers permanents. La création de fichiers temporaires est également très utile dans le développement quotidien de nos projets. Plusieurs avantages de la création de fichiers temporaires 1. Supprimez-les après utilisation 2 Il n'est pas nécessaire de maintenir l'état de suppression de ce fichier Par exemple?: j'ai besoin de le faire. supprimer les A, transférer le contenu du fichier vers B et transférer le contenu du fichier de B vers C. Tout comme dans la vraie vie, je peux d'abord utiliser une bouteille temporaire pour remplir l'eau de B, puis écrire les données de A dans B. Ajoutez l'eau de la bouteille temporaire à C. Apprenons cette fonction?: ressource tmpfile ( ) Fonction?: Créer un fichier temporaire et renvoyer le type de ressource. Le fichier est supprimé lorsqu'il est fermé. Instance <?php header("Content-type:text/html;charset=utf-8"); //設置編碼 $handle = tmpfile(); //向里面寫入了數(shù)據(jù) $numbytes = fwrite($handle, '寫入臨時文件的內(nèi)容'); //關閉臨時文件,文件即被刪除 fclose($handle); echo '向臨時文件中寫入了'.$numbytes . '個字節(jié)'; ?> Résultat de l'exécution du programme?:
Déplacer, copier, supprimer des fichiers Renommer le fichier renommer($ancien nom,$nouveau nom); Cette fonction renvoie une valeur booléenne et remplace l'ancien nom par le nouveau nom. Exemple <?php $fileName1="text.txt"; $fileName2="text--1.txt"; rename($fileName1,$fileName2); ?> L'exemple ci-dessus consiste à renommer un fichier text.txt en text--1.txt. pouvez essayer copier le fichier copier( fichier source , fichier cible) Fonction : Copiez le fichier source avec le chemin spécifié vers l'emplacement du fichier cible. Exemple <?php $filename = 'file.txt'; //舊文件名 $filename2 = 'copy-file.txt'; //新文件名 copy($filename, $filename2); //修改名字。 ?> L'exemple ci-dessus consiste à nommer un fichier file.txt , copiez un fichier nommé copy-file.txt avec le même contenu. Supprimer le fichier dissocier (fichier avec le chemin spécifié) Exemple <?php header("Content-type:text/html;charset=utf-8"); //設置編碼 $filename = 'test.txt'; unlink($filename); ?> L'exemple ci-dessus consiste à supprimer un fichier nommé test.txt Fonctions couramment utilisées dans les fichiers taille du fichier Détecter la taille du fichier Exemple <?php header("Content-type:text/html;charset=utf-8"); //設置編碼 $filename = 'file.txt'; echo $filename . '文件大小為: ' . filesize($filename) . ' bytes'; ?> Résultat de l'exécution du programme?:
Autres fonctions d'exploitation des fichiers, lecture de fichiers < largeur de la table ="-642"> |
?>?>Fonction?>?> | fichier | Lire le fichier entier dans un tableau | fgets | Lire une ligne à partir du pointeur de fichier et renvoyer false après avoir lu jusqu'à la fin | fgetc | Lire un caractère à partir du pointeur de fichier et renvoyer false après avoir lu jusqu'à la fin | ftruncate | Tronquer le fichier à la longueur donnée | Nous utilisons un exemple pour utiliser toutes les fonctions ci-dessus. Nous écrivons un lot de fichiers dans le fichier text.txt?:
fgetc lit un <?php //以增加的r模式打開 $fp = fopen('text.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個字符 echo fgetc($fp) ."<br>"; //我要全部讀取可以,讀取一次將結果賦值一次給$string while($string = fgetc($fp)){ echo $string; } ?> Résultat en cours d'exécution du programme?:
fgets ouvre une ligne à la fois?: <?php //以增加的r模式打開 $fp = fopen('text.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個字符 echo fgets($fp)."<br>"; echo fgets($fp)."<br>"; echo fgets($fp)."<br>"; echo fgets($fp); ?> Le programme s'exécute Résultat?:
Fonction d'interception de fichiers <?php //打開我們上面的text.txt文件 $file = fopen("text.txt", "a+"); //你可以數(shù)數(shù)20個字有多長,看看是不是達到效果了 echo ftruncate($file,10); fclose($file); ?> Exécutez le programme et ouvrez le fichier text.txt pour voir s'il y a 20 octets Fonction temporelle du fichier
Instance <?php header("Content-type:text/html;charset=utf-8"); //設置編碼 $filename = 'text.txt'; if (file_exists($filename)) { echo "$filename"."文件的上次訪問時間是: " . date("Y-m-d H:i:s", fileatime($filename))."<br>"; echo "$filename"."文件的創(chuàng)建時間是: " . date("Y-m-d H:i:s", filectime($filename))."<br>"; echo "$filename"."文件的修改時間是: " . date("Y-m-d H:i:s", filemtime($filename)); } ?> Résultat de l'exécution du programme?:
Fonction de traitement de répertoire Avant, tout ce que nous traitions était fichiers, ce répertoire Comment gérer les dossiers ? Apprenons les fonctions liées au traitement des répertoires ou des dossiers. L'idée de base du traitement des dossiers est la suivante?: 1. Lire un certain Lors de la détermination du chemin, déterminez s'il s'agit d'un dossier 2 S'il s'agit d'un dossier, ouvrez le dossier spécifié et renvoyez la variable de ressource du répertoire de fichiers 3. readdir pour lire les fichiers dans le répertoire une fois. Le pointeur du répertoire est décalé une fois vers l'arrière 4. Utilisez readdir pour lire jusqu'à la fin, s'il n'y a pas de fichier lisible, renvoyez false 5. Fermez le répertoire de fichiers Découvrons-le Fonctions les plus couramment utilisées?:
Instance <?php //設置打開的目錄是D盤 $dir = "D:/"; //判斷是否是文件夾,是文件夾 if (is_dir($dir)) { if ($dh = opendir($dir)) { //讀取一次向后移動一次文件夾指針 echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; //讀取到最后返回false //關閉文件夾資源 closedir($dh); } } ?> Vous pouvez exécuter ce programme pour voir s'il s'agit du répertoire du lecteur D de votre ordinateur Déterminez le type de fichier <?php //設置打開的目錄是D盤 $dir = "D:/"; //判斷是否是文件夾,是文件夾 if (is_dir($dir)) { if ($dh = opendir($dir)) { //讀取到最后返回false,停止循環(huán) while (($file = readdir($dh)) !== false) { echo "文件名為: $file : 文件的類型是: " . filetype($dir . $file) . "<br />"; } closedir($dh); } } ?> Exécutez le programme et jetez un ?il Fonction de chemin de fichier Nous avons souvent rencontrer des conditions de chemin de traitement des fichiers. Par exemple?: 1 Le suffixe du fichier doit être supprimé 2. extraire le nom mais pas le répertoire 3. Il vous suffit de supprimer le chemin du répertoire dans le nom du chemin 4. Ou analyser chaque partie de l'URL pour obtenir des valeurs indépendantes .5. Ou même créer une URL par vous-même Sortez De nombreux endroits nécessitent l'utilisation de fonctions de classe de traitement de chemin. Nous avons marqué les fonctions de traitement de chemin couramment utilisées pour tout le monde. Vous pouvez simplement traiter cette fonction de traitement de chemin?:
pathinfo pathinfo (string $path) Instance <?php header("Content-type:text/html;charset=utf-8"); $path_parts = pathinfo('D:/www/a.html'); echo '文件目錄名:'.$path_parts['dirname']."<br />"; echo '文件全名:'.$path_parts['basename']."<br />"; echo '文件擴展名:'.$path_parts['extension']."<br />"; echo '不包含擴展的文件名:'.$path_parts['filename']."<br />"; ?> Résultat de l'exécution du programme?:
nom de base basename ( string $path[, string $suffix]) Instance <?php echo "1: ".basename("d:/www/a.html", ".d")."<br>"; echo "2: ".basename("d:/www/include")."<br>"; echo "3: ".basename("d:/www/text.txt")."<br>"; ?> Résultat de l'exécution du programme?:
dirname dirname(string $path ) Instance <?php $a=dirname(__FILE__); echo$a; ?>
Exécutez votre programme parse_url parse_url (string $path) Instance <?php $url = 'http://username:password@hostname:9090/path?arg=value#anchor'; var_dump(parse_url($url)); ?> Résultat de l'exécution du programme?:
http_build_query http_build_query (données $ mixtes à traiter) Instance <?php //定義一個關聯(lián)數(shù)組 $data = [ 'username'=>'liwenkai', 'area'=>'hubei', 'pwd'=>'123' ]; //生成query內(nèi)容 echo http_build_query($data); ?> Résultat de l'exécution du programme?:
Manuel de référence du système de fichiers PHP Pour un manuel de référence complet des fonctions du système de fichiers PHP, veuillez visiter notre manuel de référence du système de fichiers PHP. ||
<?php
header("Content-type:text/html;charset=utf-8");
$data = "我是一個兵,來自老百姓";
$numbytes = file_put_contents('binggege.txt', $data);
if($numbytes){
echo '寫入成功,我們讀取看看結果試試:';
echo file_get_contents('binggege.txt');
}else{
echo '寫入失敗或者沒有權限,注意檢查';
}
?>
Le didacticiel n'est pas disponible au téléchargement pour le moment. Le staff est actuellement en train de l'organiser. Veuillez prêter plus d'attention à ce cours à l'avenir ~
Les étudiants qui ont regardé ce cours apprennent également
|