升级补丁
PHP中怎样读取文件?(分享总结)-PHP问题
来源:祺点源码论坛     阅读:44
网站管理员
发布于 2024-09-27 21:27
查看主页

在之前的文章中给大家带来了《让人心动的php的正则表达式基础(图例详解)》,主要讲述了php正则表达式的基础知识以及通过示例来进行使用学习。本篇文章继续来学习一下php文件系统的相关知识。希望对大家有所帮助!

在我们使用电脑时,我们都会使用电脑来打开关闭一个文件,创建一个文件或者上传一个文件。那么这些操作在代码里能不能做呢?如果能做的话,应该怎样去做?其实很简单,学习文件处理实际上就是学习文件处理的函数,再结合之前所学习的内容。那么接下来我们一起来看看吧。

读取文件算得上是我们再日常使用中最常见的一个操作了,那么再代码里要怎样实现。

下面来介绍一下如何使用 PHP 中的函数来读取文件内容。

立即学习“PHP免费学习笔记(深入)”;

fgetc():从文件中读取一个字符

在使用这些函数读取文件之前,我们需要先在服务器根目录下建立一个文本文件(这里我们以 text.txt 为例),文本内容如下:

接下来我们来看一看,fgetc()在使用中应该怎样去用,输出的结果又是如何:

<?php header("Content-Type: text/html;charset=utf-8"); $handle = fopen(&#39;test.txt&#39;, &#39;r&#39;); $a = fgetc($handle) ; echo $a; ?>登录后复制

输出结果:

fgetc只能读取一个字符,我们可以利用之前讲到的循环来进行结合,就可以得到下面示例:

<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $handle = fopen(&#39;test.txt&#39;, &#39;r&#39;); //打开文件 if (!$handle) { //判断文件是否打开成功 echo &#39;文件打开失败!&#39;; } while (false !== ($char = fgetc($handle))) { //循环读取文件内容 echo $char; } fclose($handle); //关闭文件?>登录后复制

输出结果:

fgets() 和 fgetss():逐行读取文件

<?php header("Content-Type: text/html;charset=utf-8"); $handle = fopen(&#39;test.txt&#39;, &#39;r&#39;); $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.&#39;<br>&#39;; } fclose($handle); } ?>登录后复制

输出结果:

fread():读取文件(任意长度)

<?php $filename = "test.txt"; $handle = fopen($filename, "r"); $contents = fread($handle, &#39;6&#39;); echo &#39;从文件中读取 6 个字符长度:&#39;.$contents.&#39;<br>&#39;; rewind($handle); $contents = fread($handle, filesize($filename)); echo &#39;读取全部的文件内容:&#39;.$contents; fclose($handle);?>登录后复制

输出结果:

readfile():读取全部文件

<?php $file = &#39;test.txt&#39;; $info = readfile($file);?>登录后复制

输出结果:

file():把整个文件读入一个数组中

<?php $file = &#39;test.txt&#39;; $arr = file($file, FILE_IGNORE_NEW_LINES); $arr2 = file($file); echo &#39;<pre class="brush:php;toolbar:false">&#39;; var_dump($arr); var_dump($arr2);?>登录后复制

输出结果:

file_get_contents():将文件读入一个字符串

首先,我们先创建一个test.txt文件

然后输入:

<?php $a = &#39;test.txt&#39;; $b = file_get_contents($a); //因为每一行有一个回车即 ,我用 来把这个字符串切割成数组 $c = explode(" ", $b); //把切割成的数组,下标赋值给$key,值赋值给$val,每次循环将$key加1。 while (list($key, $val) = each($c)) { ++$key; $val = trim($val); //用的单引号,单引号不解释变量进行了拼接而已 print &#39;Line&#39; . $key .&#39;:&#39;. $val.&#39;<br />&#39;; }?>登录后复制

通过与我们之前学的知识结合起来,输出结果:

这就是我们学习的知识进行了整合,先是通过file_get_contents先打开文件,然后在通过list each语句和while循环,得到了输出结果。

扩展知识:fopen、fread、fclose操作读取

上述的file_get_contents打开文件的方式简单又粗暴,那么接下来的几个

resource fopen ( string $文件名, string 模式)string fread ( resource $操作资源, int 读取长度)bool fclose ( resource $操作资源 )登录后复制

通过上面的函数我们来讲解资源类型的通常操作方式:

打开资源

使用相关函数进行操作

关闭资源

fopen函数 fopen函数的功能是打开文件,参数主要有两个:

文件打开的路径

打开文件的模式

返回类型是一个资源类型,资源类型需要其他的函数来操作这个资源。所有的资源有打开就要有关闭。

fread函数: 函数的功能的功能是读取打开的文件资源。读取指定长度的文件资源,读取一部份向后移动一部份。至到文件结尾。

fclose函数 :fclose函数的功能是关闭资源。资源有打开就有关闭。

接下来给大家介绍一下fopen函数的模式:

r    只读方式打开,将文件指针指向文件头。    

r+    读写方式打开,将文件指针指向文件头。    

w    写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建    

w+    读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建    

a    写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建    

a+    读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之    

x    创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建    

x+    创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建

推荐学习:《PHP视频教程》

以上就是PHP中怎样读取文件?(分享总结)的详细内容!

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 升级补丁
相关推荐
什么是OK币?OK币发行价、总量及白皮书介绍-web3.0
navicat数据库管理工具怎么打开-navicat
笔记本电脑怎么看无线密码-硬件新闻
Golang 闭包在单元测试中的应用-Golang
其他开发语言框架的文档质量对比Golang框架的文档质量如何?-Golang

首页

消息

购物车

我的