几个PHP读取整个文件的函数readfile()、fpassthru()和file()
2.7.4 读取整个文件:readfile()、fpassthru()和file()
除了可以每次读取文件一行外,还可以一次读取整个文件。PHP提供了4种不同的方式来读取整个文件。
第一种方式是readfile()。可以使用如下一行语句来代替前面所编写的所有脚本:
- define('DOCPATH', dirname(__FILE__).'/');
- echo readfile(DOCPATH.'form.class.php');
调用readfile()函数将打开这个文件,并且将文件内容输出到标准输出(浏览器)中,然后再关闭这个文件。readfile()的函数原型如下所示:
第二个可选参数指定了PHP是否应该在include_path中查找文件,这一点与fopen()函数一样。可选的context参数只有在文件被远程打开(例如通过HTTP)时才使用;我们将在第19章详细介绍这种用法。这个函数的返回值是从文件中读出的字节总数。
第二种方式是fpassthru()。要使用这个函数,必须先使用fopen()打开文件。然后将文件指针作为参数传递给fpassthru()。这样就可以把文件指针所指向的文件内容发送到标准输出。然后再将这个文件关闭。
可以使用如下代码替代前面的脚本:
如果读操作成功,fpassthru()函数将返回true,否则返回false。
第三种读取整个文件的函数是file()。除了可以将文件内容回显到标准输出外,它和readfile()是一样的,它是把结果发送到一个数组中。我们将在第3章介绍数组时详细介绍。作为参考,可以按如下方式调用它:
这行代码可以将整个文件读入到一个名为$filearray的数组中。文件中的每一行都将作为一个元素保存在这个数组中。
最后,在PHP 4.3.0中,还可以使用file_get_contents()函数。这个函数与readfile()相同,但是该函数将以字符串的形式返回文件内容,而不是将文件内容回显到浏览器中。这个新函数的优点在于,它是二进制安全的,这一点不同于file()函数。
几个PHP读取整个文件的函数readfile()、fpassthru()和file()的更多相关文章
- EPANET中读取INPUT文件的函数文件——INPUT1.C/INPUT2.C/INPUT3.C
首先介绍下这3个文件的关系:可以说INPUT1.C的函数粒度最大,它的函数getdata()就完成了整个INPUT文件数据的读入,该函数又调用了INPUT2.C中的部分函数,INPUT2.C文件中的函 ...
- EPANET中读取INPUT文件的函数文件——INPUT3.C
/* ********************************************************************** INPUT3.C -- Input data par ...
- Loadrunner脚本之C语言文件处理函数
一.打开文件 打开文件使用库函数中的fopen函数.fopen函数会为要打开的文件新建一个流,然后返回一个指向file型对象的指针,该file型对象中保存了控制这个流所需要的信息. fp=fopen( ...
- python读取mat文件
一.mat文件 mat数据格式是Matlab的数据存储的标准格式.在Matlab中主要使用load()函数导入一个mat文件,使用save()函数保存一个mat文件.对于文件 load('data.m ...
- Java学习笔记之I/O流(读取压缩文件以及压缩文件)
1.读取压缩文件:ZipInputStream 借助ZipFile类的getInputStream方法得到压缩文件的指定项的内容,然后传递给InputStreamReader类的构造方法,返回给Buf ...
- 路径正确下,Eclipse读取txt文件仍失败
症状:使用Eclipse读取文件时,路径输入确认正确(前提!!!),但控制台总报错: 错误类型一: Exception in thread "main" java.io.FileN ...
- FileReader读取本地文件
FileReader是一种异步读取文件机制,结合input:file可以很方便的读取本地文件. 一.input:type[file] file类型的input会渲染为一个按钮和一段文字.点击按钮可打开 ...
- Java 读取TXT文件的多种方式
1).按行读取TXT文件package zc;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFound ...
- php使用file函数、fseek函数读取大文件效率分析
php读取大文件可以使用file函数和fseek函数,但是二者之间效率可能存在差异,本文章向大家介绍php file函数与fseek函数实现大文件读取效率对比分析,需要的朋友可以参考一下. 1. 直接 ...
随机推荐
- JS 作用域 p1
引用<你不知道的JavaScript>中的话,如下: 负责收集并维护由所有生命的标识符(变量)组成的一系列查询并实施一套非常严格的规则,确定当前执行的代码对这些标识符的访问权限. 那么作用 ...
- canvas与svg特性和使用对比
什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...
- 【读书笔记】iOS-网络-解析响应负载
Web Service可以通过多种格式返回结构化数据, 不过大多数时候使用的是XML与JSON.也可以让应用只接收HTML结构的数据.实现了这些Web Service或是接收HTML文档的应用必须能解 ...
- IntelliJ idea 备份与恢复
为了防止突然断电或者电脑突然关机导致idea恢复出厂设置,需要定期备份配置. 一.备份 File---Export Settings 将settings.jar 文件导入到C:\Users\xutin ...
- Asp.Net Core使用System.Drawing.Common部署到docker报错问题
Asp.Net Core 2.1发布后,正式支持System.Drawing.Common绘图了,可以用来做一些图片验证码之类的功能.但是把网站部署到docker容器里运行会遇到很多问题,也是非常闹心 ...
- LeetCode题解之Maximum Depth of N-ary Tree
1.题目描述 2.问题分析 利用递归fangf 3.代码 int maxDepth(Node* root) { int res = maxdep(root); return res; } int ma ...
- SQL Server FileStream (转载)
从SQL SERVER 2008开始,SQL SERVER引入了一种新的文件组类型叫FileStream文件组,如下图所示: 那么这种文件组是用来做什么的呢? 以往我们对文件管理有两种方法: 数据库只 ...
- MyEclipse总是quick update解决办法
这个问题的解决办法是关闭自动更新 1. Windows > Preferences > MyEclipse> Community Essentials, 把选项 "Sear ...
- tar压缩/解压用法
格式:tar zcvf 压缩后的路径及包名 你要压缩的文件 z:gzip压缩 c:创建压缩包 v:显示打包压缩解压过程 f:接着压缩 t:查看压缩包内容 x:解压 X:指定文件列表形式排除不需要打包压 ...
- orcl regexp_like 的用法
oracle10g以上支持正则表达式的函数主要有下面四个:1.REGEXP_LIKE :与LIKE的功能相似2.REGEXP_INSTR :与INSTR的功能相似3.REGEXP_SUBSTR :与S ...