Dans l'article précédent "Opération sur les fichiers php - lecture des fichiers ligne par ligne", nous avons présenté la méthode de lecture des fichiers ligne par ligne, puis à l'aide de boucles, nous pouvons obtenir toutes les données du fichier. Alors si vous n’utilisez pas de boucle, comment récupérer toutes les données du fichier ? Cet article vous présentera comment obtenir toutes les données d'un fichier à la fois sans utiliser de boucles.
Il existe de nombreuses façons de lire toutes les données d'un fichier à la fois en PHP. Aujourd'hui, nous allons principalement découvrir les deux fonctions fread() et readfile().
Nous avons un fichier texte nommé "test.txt", dont le contenu est :
Tout d'abord, comprenons la fonction fread() et regardons l'exemple suivant :
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $file = "test.txt"; $handle = fopen($file, 'r'); //打开文件 $contents = fread($handle, filesize($file)); //读取文件内容 echo $contents; fclose($handle);//关闭文件 ?>
Résultat de sortie :
On voit que tout le contenu du fichier "test.txt" est sorti.
En fait, la fonction de fread($handle,$length)
est de lire le fichier ouvert $handle
et de spécifier la longueur des caractères de $length< /code> caractères. Mais lorsque la valeur du paramètre $length est spécifiée comme "<code>filesize($file)
", alors toutes les données du fichier entier peuvent être lues. Le rôle de la fonction filesize() est d'obtenir la taille du fichier, et le rôle de la fonction fread() est de lire l'intégralité du fichier. fread($handle,$length)
函数的作用是读取打开文件$handle
中,指定$length
字符长度的字符。但当$length参数的值被指定为 “filesize($file)
”,那么就可以读取整个文件的全部数据了。filesize()函数的作用是获取文件大小,在 fread()函数中的作用就是读取整个文件。
使用fread()读取整个文件,还要先打开文件,计算整个文件的大小,读取完还要关闭文件,有复杂,有没有更简便的?答案是有,可以使用readfile()函数。
我们看看下面的示例:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $file = "test.txt"; readfile($file); //读取文件内容 ?>
输出结果:
是不是很简单,直接使用一行代码“readfile($file);
”就可以一次性获得文件的全部数据了;不需要打开或关闭文件,也不需要使用echo
等输出语句就可输出文件内容。
下面我们来了解一下readfile()函数。
readfile($filename,$include_path,$context)
函数会读取一个文件并将其写入到输出缓冲,同时返回从文件中读入的字节数。
该函数接受1个必需参数$filename
(指定要读取的文件名或文件路径),2个可省略的参数$include_path
和$context
。
$include_path
参数:设定是否想要在 include_path (在 php.ini 中)中搜索该文件,默认为 FALSE;如果想,则设置参数值为 '1'。
$context
参数:设置文件句柄的环境
如果读取失败,readfile()函数会返回FALSE并附带错误信息;我们可以通过在函数名前面添加一个 '@
' 来隐藏错误输出。
readfile()Utiliser fread() pour lire l'intégralité du fichier nécessite d'abord d'ouvrir le fichier, de calculer la taille de l'intégralité du fichier, puis de fermer le fichier après la lecture. Existe-t-il une méthode plus simple ? La réponse est oui, vous pouvez utiliser la fonction
@
. Regardons l'exemple suivant :
rrreeeRésultat de sortie : N'est-ce pas très simple ? Utilisez simplement une ligne de code "readfile($file);
" pour obtenir toutes les données de le fichier à la fois ; non Le fichier doit être ouvert ou fermé, et le contenu du fichier peut être affiché sans utiliser d'instructions de sortie telles que echo
. Jetons un coup d'œil à la
readfile($filename,$include_path,$context)
La fonction lit un fichier et l'écrit dans le tampon de sortie, et renvoie le nombre d'octets lus dans le fichier. 🎜🎜Cette fonction accepte 1 paramètre obligatoire $filename
(spécifie le nom du fichier ou le chemin du fichier à lire), et 2 paramètres omis $include_path
et $context. 🎜 Paramètre <ul style="list-style-type: disc;">
<li>🎜<code>$include_path
: Définissez si vous souhaitez rechercher le fichier dans include_path (dans php.ini), valeurs par défaut sur FALSE ; si vous le souhaitez, définissez la valeur du paramètre sur « 1 ». 🎜
$context
: Définissez l'environnement du handle de fichier🎜@
' devant le nom de la fonction. 🎜🎜@
est un opérateur de contrôle d'erreur Lorsqu'il est placé avant une expression PHP, toute information d'erreur pouvant être générée par l'expression sera ignorée. 🎜🎜🎜D'accord, c'est tout. Si vous voulez savoir autre chose, vous pouvez cliquer ici. → →🎜Fonctionnement de base des fichiers PHP🎜🎜🎜🎜Recommandé :🎜"🎜Collection de questions d'entretien PHP (collection)🎜" "🎜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!