PHP 文件读取 fread、fgets、fgetc、file_get_contents 与 file 函数
fread()、fgets()、fgetc()、file_get_contents() 与 file() 函数用于从文件中读取内容。
fread()
fread() 函数用于读取文件(可安全用于二进制文件)。
语法:
string fread( int handle, int length )
fread() 从文件指针 handle 读取最多 length 个字节。当遇到下列任何一种情况时,会停止读取文件:
- 在读取完最多 length 个字节数时
- 达到文件末尾的时候(EOF)
- (对于网络流)当一个包可用时
- 或(在打开用户空间流之后)已读取了 8192 个字节时
从文件中读取 10 个字节(包括空格):
<?php
// http://www.manongjc.com/article/1346.html
$filename = "test.txt";
$fh = fopen($filename, "r");
echo fread($fh, "10");
fclose($fh);
?>
提示
如果只是想将一个文件的内容读入到一个字符串中,应该用性能更好的 file_get_contents() 。
fgets()
fgets() 函数用于从文件中读取 一行 数据,并将文件指针指向下一行。
提示:如果想在读取的时候去掉文件中的 HTML 标记,请使用 fgetss() 函数。
语法:
string fgets( int handle [, int length] )
fgets() 从 handle 指向的文件中读取一行并返回长度最多为 length-1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length-1 字节后停止。如果没有指定 length ,则默认为 1K ,或者说 1024 字节。
例子:
<?php
$fh = @fopen("test.txt","r") or die("打开 test.txt 文件出错!");
// if条件避免无效指针
// http://www.manongjc.com/article/1347.html
if($fh){
while(!feof($fh)) {
echo fgets($fh), '<br />';
}
}
fclose($fh);
?>
补充说明
feof() 函数测试文件指针是否到了文件结束的位置,该文件指针必须有效,如果是无效的资源,则会陷入无限循环中。参见《PHP 文件指针函数》
fgetc()
fgetc() 函数用于 逐字 读取文件数据,直到文件结束。
语法:
string fgetc( resource handle )
例子:
<?php
$fh = @fopen("test.txt","r") or die("打开 test.txt 文件出错!");
// http://www.manongjc.com/article/1348.html
if($fh){
while(!feof($fh)) {
echo fgetc($fh);
}
}
fclose($fh);
?>
file_get_contents()
file_get_contents() 函数用于把 整个文件 读入一个字符串,成功返回一个字符串,失败则返回 FALSE。
语法:
string file_get_contents( string filename [, int offset [, int maxlen]] )
参数说明:
参数 说明
filename 要读取的文件名称
offset 可选,指定读取开始的位置,默认为文件开始位置
maxlen 可选,指定读取文件的长度,单位字节
例子:
<?php
// 读取时同事将换行符转换成 <br />
echo nl2br(file_get_contents('test.txt'));
?>
file()
file() 函数用于把 整个文件 读入一个数组中,数组中的每个单元都是文件中相应的一行,包括换行符在内。成功返回一个数组,失败则返回 FALSE。
语法:
array file( string filename )
例子:
<?php
$lines = file('test.txt');
// 在数组中循环并加上行号
// http://www.manongjc.com/article/1349.html
foreach ($lines as $line_num => $line) {
echo "Line #{$line_num} : ",$line,'<br />';
}
?>
test.txt 文件内容:
你好!
这是第二行文字。
浏览器显示:
Line #0 : 你好!
Line #1 : 这是第二行文字。
PHP 文件读取 fread、fgets、fgetc、file_get_contents 与 file 函数的更多相关文章
- PHP读取文件函数fread,fgets,fgetc,file_get_contents和file函数的使用总结
fread().fgets().fgetc().file_get_contents() 与 file() 函数用于从文件中读取内容. 1.fread() fread()函数用于读取文件(可安全用于二进 ...
- 2020/2/1 PHP代码审计之任意文件读取及删除漏洞
在开始学习之前先简单记录一下自己现在的思路吧..现在接触的基本都是无防护的漏洞也就是最简单的一些漏洞.我的想法就是以代审思路为主,之前一直在打CTF,白盒的思维我觉得和CTF这种黑盒有很大区别.自己的 ...
- 《程序设计基础》实验题目2 c文件读取(反序列化?) 链表排序
题目: 每个学生的信息卡片包括学号.姓名和成绩三项.定义存储学生信息的单向链表的结点类型:编写函 数,由文件依次读入 n(n≥0)个学生的信息,创建一个用于管理学生信息的单向链表:编写函数,对 该链表 ...
- HTML5 文件读取
一.定义 input的file类型会渲染为一个按钮和一段文字.点击按钮可打开文件选择窗口,文字表示对文件的描述(大部分情况下为文件名):file类型的input会有files属性,保存着文件的相关信息 ...
- html外部文件读取/写入
1.文件的读取 外部文件读取控件: <input type="file" id="file_jquery" onchange="file_jqu ...
- PHP文件操作,多行句子的读取,file()函数,file_get_contents()函数,file_put_contents()函数,is_file,统计网站pv (访问量),文件的复制 copy,文件重命名 rename,删除文件 unlink
php中添加utf-8: header("Content-type:text/html;charset='UTF-8'"); 文件操作步骤: 1.在同一目录下建立一个file.tx ...
- PHP大文件读取操作
简单的文件读取,一般我们会使用 file_get_contents() 这类方式来直接获取文件的内容.不过这种函数有个严重的问题是它会把文件一次性地加载到内存中,也就是说,它会受到内存的限制.因此,加 ...
- php使用file函数、fseek函数读取大文件效率分析
php读取大文件可以使用file函数和fseek函数,但是二者之间效率可能存在差异,本文章向大家介绍php file函数与fseek函数实现大文件读取效率对比分析,需要的朋友可以参考一下. 1. 直接 ...
- php 文件读取
整理了一下PHP中读取文件的几个方法,方便以后查阅. 1.fread string fread ( int $handle , int $length ) fread() 从 handle 指向的文件 ...
随机推荐
- Hub, bridge, switch, router, gateway的区别
这些概念性的东西,其实,有的区别不是很大,有的区别很大. Hub 就是一个重复转发器,就是从一个port接受到数据后,就会原样的向其他的所有端口发送刚才收到的数据.个人理解为是工作在物理层的东西.但是 ...
- window.open窗口关闭后刷新父窗口代码
window.open窗口关闭后刷新父窗口代码 window.opener.location.href=window.opener.location.href;window.close();
- JQUERY 拖拽 draggable droppable resizable selectable sortable
今天用了jq ui的拖动碰撞功能,好不容易看到有详细的API解说,记录如下: <script language="JavaScript" type="text/ ...
- Learning Puppet — Manifests
Begin In a text editor — vim, emacs, or nano — create a file with the following contents and filenam ...
- CFLAGS,CPPFLAGS,CXXFLAGS in Makefile
CC 与 CXX: 这是 C 与 C++ 编译器命令.默认值一般是 “gcc” 与 “g++”. CPPFLAGS will be given to the C preprocessor ...
- 解决AD域认证问题—“未知的身份验证机制”
场景: Ad认证登录系统,之前正常.不知服务器调了什么,导致无法登录.提示信息如标题. 解决方案: DirectoryEntry adRoot = new DirectoryEntry("L ...
- jdk RSA算法类使用
package com.security.rsa; import java.security.Key;import java.security.KeyFactory;import java.secur ...
- mousewheel滚轮事件 浏览器的写法
鼠标的滚轮事件,在Jquery中有对应的一个插件:https://github.com/brandonaaron/jquery-mousewheel 原生的滚轮事件:火狐与其他浏览器使用了不同的事件 ...
- 关于 xcode 工程编译报错 undefined symbol _res_9_init的解决办法
将libresolv.dylib 添加到工程引用中(通过build phases中).补充: _res_9_init定义在resolv.h中,可以参考http://www.opensource. ...
- Android五:Activity
生命周期: onCreate onStart onResume onPause:在该状态如果有优先级更高的程序,那此进程可能被kill;如果是被重新执行,则回到onResume状态. onStop : ...