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)
Grâce à 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 .'字节被写入了\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(); //向里面写入了数据 $numbytes = fwrite($handle, '写入临时文件的内容'); //关闭临时文件,文件即被删除 fclose($handle); echo '向临时文件中写入了'.$numbytes . '个字节'; ?> 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+'); //你分发现每次只读一个字符 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+'); //你分发现每次只读一个字符 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+"); //你可以数数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"."文件的创建时间是: " . 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,停止循环 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 //定义一个关联数组 $data = [ 'username'=>'liwenkai', 'area'=>'hubei', 'pwd'=>'123' ]; //生成query内容 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
|