Maison >développement back-end >Problème PHP >Comment lire des fichiers en PHP ? (Partager le résumé)
Dans l'article précédent, je vous ai présenté "Les bases passionnantes des expressions régulières en PHP (illustrations détaillées)", qui parle principalement des connaissances de base des expressions régulières PHP et de la façon de les utiliser à travers des exemples. Cet article continue d'en apprendre davantage sur le système de fichiers PHP. J'espère que cela aidera tout le monde !
Lorsque nous utilisons des ordinateurs, nous les utilisons tous pour ouvrir et fermer un fichier, créer un fichier ou télécharger un fichier. Alors ces opérations peuvent-elles être effectuées dans le code ? Si c’est possible, comment faut-il le faire ? En fait, c'est très simple. Apprendre le traitement de fichiers consiste en fait à apprendre les fonctions de traitement de fichiers et à les combiner avec ce que vous avez appris auparavant. Alors jetons un coup d’œil ensuite.
La lecture de fichiers est l'une des opérations les plus courantes dans notre utilisation quotidienne, alors comment l'implémenter dans le code ?
Présentons comment utiliser les fonctions en PHP pour lire le contenu d'un fichier.
fgetc()
: Lire un caractère à partir d'un fichier fgetc()
:从文件中读取一个字符
在使用这些函数读取文件之前,我们需要先在服务器根目录下建立一个文本文件(这里我们以 text.txt 为例),文本内容如下:
接下来我们来看一看,fgetc()在使用中应该怎样去用,输出的结果又是如何:
<?php header("Content-Type: text/html;charset=utf-8"); $handle = fopen('test.txt', 'r'); $a = fgetc($handle) ; echo $a; ?>
输出结果:
fgetc只能读取一个字符,我们可以利用之前讲到的循环来进行结合,就可以得到下面示例:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $handle = fopen('test.txt', 'r'); //打开文件 if (!$handle) { //判断文件是否打开成功 echo '文件打开失败!'; } while (false !== ($char = fgetc($handle))) { //循环读取文件内容 echo $char; } fclose($handle); //关闭文件 ?>
输出结果:
fgets()
和 fgetss()
:逐行读取文件
<?php header("Content-Type: text/html;charset=utf-8"); $handle = fopen('test.txt', 'r'); $a = fgets($handle) ; echo $a; ?>
输出结果:
fgetss()函数是fgets()的一个变式,也是用来读取一行数据,读取的同时它还会过滤掉读取内容中的PHP和HTML标记,
可以看出,通过fgets可以逐行读取文件,同时可以和上文一样,我们可以利用循环来读取全部文件。
示例如下:
<?php $handle = @fopen("test.txt", "r"); if ($handle) { while (($info = fgets($handle, 1024)) !== false) { echo $info.'<br>'; } fclose($handle); } ?>
输出结果:
fread()
:读取文件(任意长度)
<?php $filename = "test.txt"; $handle = fopen($filename, "r"); $contents = fread($handle, '6'); echo '从文件中读取 6 个字符长度:'.$contents.'<br>'; rewind($handle); $contents = fread($handle, filesize($filename)); echo '读取全部的文件内容:'.$contents; fclose($handle); ?>
输出结果:
readfile()
:读取全部文件
<?php $file = 'test.txt'; $info = readfile($file); ?>
输出结果:
file()
:把整个文件读入一个数组中
<?php $file = 'test.txt'; $arr = file($file, FILE_IGNORE_NEW_LINES); $arr2 = file($file); echo '<pre class="brush:php;toolbar:false">'; var_dump($arr); var_dump($arr2); ?>
输出结果:
file_get_contents()
Voyons ensuite comment fgetc() doit être utilisé et quels sont les résultats de sortie :
<?php $a = 'test.txt'; $b = file_get_contents($a); //因为每一行有一个回车即\n,我用\n来把这个字符串切割成数组 $c = explode("\n", $b); //把切割成的数组,下标赋值给$key,值赋值给$val,每次循环将$key加1。 while (list($key, $val) = each($c)) { ++$key; $val = trim($val); //用的单引号,单引号不解释变量进行了拼接而已 print 'Line' . $key .':'. $val.'<br />'; } ?>Résultats de sortie :
fgetc ne peut lire qu'un seul caractère, nous pouvons utiliser le boucles mentionnées précédemment à combiner, et nous pouvons obtenir l'exemple suivant :
resource fopen ( string $文件名, string 模式) string fread ( resource $操作资源, int 读取长度) bool fclose ( resource $操作资源 )Résultat de sortie :
fgets()
et fgetss()
: un par un fichier de lecture de ligne
Résultat de sortie :
png" alt="Comment lire des fichiers en PHP ? (Partager le résumé)"/>
fread()
: Lire le fichier (n'importe quelle longueur)🎜🎜🎜🎜🎜rrreee🎜Résultat de sortie : 🎜🎜🎜🎜🎜🎜🎜readfile()
:Lire Obtenir tous les fichiers 🎜🎜🎜rrreee🎜Résultat de sortie : 🎜🎜🎜🎜🎜🎜🎜file()
: Lire le fichier entier dans un tableau🎜🎜🎜rrreee🎜Résultat de sortie : 🎜🎜🎜🎜🎜🎜file_get_contents() : Lit le fichier dans une chaîne 🎜🎜🎜🎜Tout d'abord, nous créons un fichier test.txt 🎜🎜🎜🎜🎜🎜 Saisissez ensuite : 🎜rrreee🎜En le combinant avec les connaissances que nous avons apprises auparavant, le résultat de sortie est : 🎜🎜 🎜🎜🎜C'est l'intégration des connaissances que nous avons apprises. Tout d'abord, nous avons ouvert le fichier via file_get_contents, puis obtenu les résultats de sortie via la liste de chaque instruction et la boucle while. 🎜🎜🎜🎜Connaissances étendues : lecture des opérations fopen, fread, fclose🎜🎜🎜🎜La méthode file_get_contents ci-dessus pour ouvrir un fichier est simple et grossière, puis les suivantes🎜rrreee🎜Grâce aux fonctions ci-dessus, nous expliquerons les types de ressources habituels Méthode de fonctionnement : 🎜🎜🎜🎜Ouvrir les ressources🎜🎜🎜🎜Utiliser les fonctions associées pour fonctionner🎜🎜🎜🎜Fermer les ressources🎜
Fonction fopen La fonction de la fonction fopen est d'ouvrir un fichier. Il y a deux paramètres principaux :
Le chemin pour ouvrir le fichier
Le mode pour ouvrir le fichier
Le type de retour. est un type de ressource et le type de ressource nécessite une autre fonction 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.
Fonction fclose : La fonction fclose est de fermer les ressources. Les ressources sont ouvertes et fermées.
Ensuite, laissez-moi vous présenter le mode de la fonction fopen :
r
Ouvrez en mode lecture seule et pointez le pointeur de fichier vers l'en-tête du fichier. r
只读方式打开,将文件指针指向文件头。
r+
读写方式打开,将文件指针指向文件头。
w
写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
w+
读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
a
写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建
a+
读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之
x
创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建
x+
r+
Ouvrez en mode lecture-écriture et pointez le pointeur du fichier vers l'en-tête du fichier.
w
Ouvrez en mode écriture, pointez le pointeur du fichier sur l'en-tête du fichier et tronquez la taille du fichier à zéro. Si le fichier n'existe pas, essayez de le créer. 🎜🎜🎜🎜w+
Ouvrez en mode lecture-écriture, pointez le pointeur du fichier sur l'en-tête du fichier et tronquez la taille du fichier à zéro. Si le fichier n'existe pas, essayez de le créer. 🎜🎜🎜🎜a
Ouvrez en mode écriture et pointez le pointeur de fichier vers la fin du fichier. Si le fichier n'existe pas, essayez de le créer. 🎜🎜🎜🎜a+
Ouvrez en mode lecture-écriture et pointez le pointeur de fichier vers la fin du fichier. Si le fichier n'existe pas, essayez de le créer 🎜🎜🎜🎜x
Créez-le et ouvrez-le en écriture, en pointant le pointeur du fichier vers l'en-tête du fichier. Si le fichier existe déjà, l'appel fopen() échoue et renvoie FALSE et génère un message d'erreur de niveau E_WARNING. Si le fichier n'existe pas, essayez de le créer 🎜🎜🎜🎜x+
Créez-le et ouvrez-le en mode lecture-écriture, en pointant le pointeur du fichier vers l'en-tête du fichier. Si le fichier existe déjà, l'appel fopen() échoue et renvoie FALSE et génère un message d'erreur de niveau E_WARNING. Si le fichier n'existe pas, essayez de le créer🎜🎜🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!