如何使用PHP读取文件的6种方法
总结了用PHP读取文件的方法。
试着用6种方法读入文件。
-
file函数
-
readfile函数
-
file_get_contents函数
-
SplFileObject类
-
fread函数
-
fgets函数
用file函数读取文件
尝试使用file函数读取文件内容。
用file函数读取的话,读取的文件会作为数组返回。
<?php $contents = file("hello.txt"); foreach ($contents as $number => $content) { $fileNumber = $number + 1; echo "{$fileNumber}: " . $content; }
使用file函数读取了文件。
传递给file函数的是文件的路径。
将文件的路径传递给对方,对方会读取文件并将其排列后返回。(换行的时候就这样。)
返回的文件的内容的排列用foreach语句旋转显示。
$number变量是数组的关键。因为有从0开始的值,所以作为行号使用。
$content变量会一行一行地输入读取的文件内容。
因为$number变量是从0开始的,所以加上1,作为从1开始的行号。
这次我们读取的是本地的文件,也可以指定URL使用Web上的文件。
操作检查
如下准备文件并检查操作。
测试PHP文件读取 导入文本文件 Hello, World!
然后输出就像这样带有行号。
我能够确认它是逐行读取的。
1: 测试PHP文件读取 2: 导入文本文件 3: Hello, World!
使用 readfile 函数读取
使用 readfile 函数读取文件的内容。
readfile 函数是一个读取文件并立即将其写入标准输出的函数。
<?php readfile("hello.txt");
执行时,文件的内容被写入标准输出。
如果你在控制台运行它,文件的内容将原样输出到控制台。
readfile 函数用于在网络上下载文件。
如果你这样写,你访问PHP文件的时候就可以下载任何文件了。
这次,我尝试下载图像文件“test.png”文件。
<?php $image = 'test.png'; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header("Cache-Control: no-cache, must-revalidate"); header("Expires: 0"); header('Content-Disposition: attachment; filename="'.basename($image).'"'); header('Content-Length: ' . filesize($image)); header('Pragma: public'); readfile($image);
使用 file_get_contents 函数读取
尝试使用 file_get_contents 函数读取文件的内容。
file_get_contents 函数读取文件并将其作为字符串返回。
<?php $contents = file_get_contents("hello.txt"); var_dump($contents);
传递的文件路径的内容作为字符串返回到 $contents 变量。
我使用 var_dump 函数输出 $contents 变量的内容。
这次我指定了一个本地文件路径,但您也可以指定一个 URL。
操作检查
如下准备文件并检查操作。
测试PHP文件读取 导入文本文件 Hello, World!
然后,我可以确认字符串是这样返回的。
string(56) "测试PHP文件读取 导入文本文件 Hello, World!"
使用 SplFileObject 类读取
尝试使用 SplFileObject 类读取文件的内容。如果您指定
SplFileObject 类的文件路径,它将返回一个文件对象。
<?php $file = new SplFileObject("hello.txt"); foreach ($file as $number => $content) { $fileNumber = $number + 1; echo "{$fileNumber}: " . $content; }
当您新建 SplFileObject 时,将文件路径传递给构造函数。
这将返回一个文件对象。
我们正在接收 $file 变量中返回的文件对象。
通过将它传递给 foreach 语句,它可以像数组一样使用。
由于 $number 变量存储了一个从 0 开始的数字,它将被用作行号。
$content 变量逐行包含加载文件的内容。
SplFileObject 类还可以使用 setFlags 方法跳过空行。
还有读取CSV文件的设置,所以我觉得读取CSV文件的时候用这个类会很好。
操作检查
如下准备文件并检查操作。
测试PHP文件读取 导入文本文件 Hello, World!
然后结果类似于文件功能。
我能够确认它是逐行读取的。
1: 测试PHP文件读取 2: 导入文本文件 3: Hello, World!
使用 fread 函数读取
使用 fread 函数读取文件。
通过fopen函数访问文件后即可使用。以字符串的形式获取文件的内容。
<?php $filePath = "hello.txt"; $handle = fopen($filePath, "r"); $contents = fread($handle, filesize($filePath)); var_dump($contents); fclose($handle);
首先,在 $filePath 变量中指定要读取的文件路径。
我正在使用 fopen 函数打开文件。
文件路径作为第一个参数传递,模式设置为第二个参数。
由于为模式设置了“r”,因此将读取它。
由于返回了文件的资源类型,因此它存储在 $handle 变量中。
在接下来的过程中,使用 fread 函数读取文件的内容。
第一个参数指定先前获得的资源类型的 $handle 变量。
第二个参数指定要读取的文件的大小。它是通过将文件路径传递给 filesize 函数获得的。
加载文件的内容在 $contents 变量中接收。
var_dump 函数输出变量的内容。
最后,使用 fclose 关闭文件以结束进程。
您传递的是打开文件的资源。
操作检查
如下准备文件并检查操作。
测试PHP文件读取 导入文本文件 Hello, World!
这将给出与 file_get_contents 函数类似的结果。
确认可以以字符串形式获取文件内容。
string(56) "测试PHP文件读取 导入文本文件 Hello, World!"
使用 fgets 函数读取
使用 fgets 函数读取文件。
这也在使用 fopen 函数访问文件后使用。
通过使用 fgets 函数,可以像文件函数一样读取和处理每一行。
<?php $filePath = "hello.txt"; $handle = fopen($filePath, "r"); $number = 1; while ($line = fgets($handle)) { echo "第{$number}行: " . $line; $number += 1; } fclose($handle);
首先,在 $filePath 变量中指定要读取的文件路径。
我正在使用 fopen 函数打开文件。
文件路径作为第一个参数传递,模式设置为第二个参数。
$handle 将返回文件资源。
在下一行中,我们提供了一个 $number 变量用于行号。
我正在使用 while 语句逐行读取文件的内容。
我们传递给 fgets 函数的是我们得到的资源类型的 $handle 变量。
我们将文件的内容逐行存储在 $line 变量中,直到文件的内容被读取。
在循环处理中,我打印出了文件的行号和内容。
最后,fclose 关闭文件并终止进程。
操作检查
如下准备文件并检查操作。
测试PHP文件读取 导入文本文件 Hello, World!
这样的话,就会得到和file函数相同的结果。
一行一行地处理,连同行号一起输出文件的内容。
第1行: 测试PHP文件读取 第2行: 导入文本文件 第3行: Hello, World!
6种文件读取方式总结
下表总结了本次介绍的文件读取方式。
函数/类 | 内容 |
---|---|
file | 逐行读取文件 |
readfile | 读取文件并立即写入标准输出 |
file_get_contents | 将整个文件作为字符串读取 |
SplFileObject | 使用类,以行为单位读取 |
fread | 使用fopen函数获取的资源,用字符串读取文件 |
fgets | 使用fopen函数获取的资源,以行为单位读取文件 |
如果想方便阅读,用file_get_contents函数和file函数好像也不错。
当以字符串形式批量读取时,我使用了 file_get_contents 函数,而当以行为单位读取时,我使用了file函数。
让我们在下载过程中使用 readfile 函数。
本文来源:词雅网
本文地址:https://www.ciyawang.com/php-file-read.html
本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。
相关推荐
-
Array_combine函数:让数组合并更简单
引言作为一名程序员,我们经常需要合并两个或多个数组。这时候,一个非常方便的函数就出现了,那就是array_combine函数。什么是array_combine函数?array_combine函数是PH...
-
使用PHP读取本地文件的方法
对于需要处理本地文件的PHP应用程序,读取本地文件是必不可少的操作。本文将介绍如何使用PHP读取本地文件。使用file_get_contents函数读取本地文件file_get_contents函数是...
-
PHP Cookies设置:了解cookie是如何工作的
在Web开发中,cookie是一种常见的技术,可以帮助我们保存用户信息,跟踪用户行为和提供个性化体验。在本文中,我们将深入探讨PHP cookies的设置。1. 什么是cookie?cookie是一种...
-
php获取当前月份及相关应用
在PHP中,获取当前月份的方法非常简单。只需要使用date()函数,并指定参数为“m”即可。代码如下:$month = date("m"); echo&nbs...
-
使用PHP的strip_tags()函数从字符串中去除HTML标签
strip_tags()函数可以从字符串中去除HTML标签。请注意,使用allow参数允许的HTML标记不会被剥离,但通常HTML标记总是被剥离。 顺便说一句,它有一个二...
-
在PHP中检查文件存在的两种方法!(is_file)
我正在写如何检查 PHP 中是否存在“具有指定路径的文件”。 您可以使用以下两个函数来检查文件路径是否存在。...
-
通俗易懂的讲解nl2br()函数,将换行代码转换成br标签
这次,我将解释将换行字符转换为br标签的nl2br函数! 它非常容易使用! 但是,如果nl2br()函数使用不正确,它可能无法正确转换,所以需要注意!...
-
使用pathinfo函数轻松获取扩展名和文件名
你是否遇到过只想从文件路径中提取文件名或扩展名的情况? 我认为有多种方法,例如使用split分隔符拆分文件路径或使用substr函数提取文件路径。 但是...
-
使用PHP的is_null()函数检查变量是否为NULL
使用PHP的is_null()函数检查变量是否为NULL。 NULL表示没有值,不同于“0”或空字符串。 is_null()函数允许您检查变量是否为NU...
-
在PHP中使用str_shuffle()函数生成字母数字随机数
尝试使用PHP中的str_shuffle()函数生成随机字母数字。 由于str_shuffle()函数可以随机打乱一个字符串,所以这次我们将使用它来生成一个随机的字母数字...