php函数fgets读取文件

如果一个文件比较大,可以考虑用fgets函数

下面是个例子:

#文件作用:fgets读取文件

$start_time = microtime(true);
$file_name = "a.txt";
$handle = fopen($file_name,‘r‘);
$i = 0;
if($handle)
{
    while (!feof($handle)) {
        $line = fgets($handle);
        $line = str_replace("\n","",$line);
    }
}

$end_time =  microtime(true);
echo "程序耗时:".round($end_time-$start_time,3)."秒\n";

fgets() 从 handle 指向的文件中读取一行并返回长度最多为 length-1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length-1 字节后停止。如果没有指定 length ,则默认为 1K ,或者说 1024 字节。

补充说明

feof() 函数测试文件指针是否到了文件结束的位置,该文件指针必须有效,如果是无效的资源,则会陷入无限循环中。参见《PHP 文件指针函数

时间: 2024-10-03 00:31:41

php函数fgets读取文件的相关文章

fgets读取文件时的注意事项

1 文本文件 a.txt 内容如下 2 c代码 FILE *fil; if (!(fil = fopen("/home/rudy/projects/paser/a.txt", "rb"))) { printf("File I/O error,the File is not exist\n"); exit(0); } int line = 0; while(!feof(fil)) { if (fgetc(fil) == '\n') { ++line

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) (对于网络流)当一个包可用时

封装读取文件(node js)

我们都会简单的读取文件,今天我们就来讲一下用函数封装读取文件. 1.首先我们要先建好文件 2.我们在index.js里面写入代码: 1 var http=require('http'); 2 var fs=require('fs'); 3 http.createServer(function(req,res){ 4 res.writeHead(200,{'Content-Type':'text/html/css;charset=utf-8'}); 5 var url=req.url; 6 var

实现按行读取文件,把内容按照第三种内存模型打包数据传出,把行数通过函数参数传出。

/* 2 编写一个业务函数,实现按行读取文件.把内容按照第三种内存模型打包数据传出,把行数通过函数参数传出. 函数原型有两个,任意选择其一 要求1:请自己任意选择一个接口(函数),并实现功能:70分 要求2:编写测试用例.30分 要求3:自己编写内存释放函数 */ /********************************************************************** * 版权所有 (C)2015, Wu Yingqiang. * * 文件名称:ReadFi

读取文件内容fopen,fgets,fclose

<?php //首先采用“fopen”函数打开文件,得到返回值的就是资源类型.$file_handle = fopen("/data/webroot/resource/php/f.txt","r");if ($file_handle){    //接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字    while (!feof($file_handle)) { //判断是否到最后一行        $line

php读取文件内容的4钟常用方法函数

这四种方法根据不同情况使用,可以实现对文件的任何操作,下面有详细介绍. 1.把整个文件读入一个字符串中 file_get_contents(); 2.把整个文件读入一个数组中,一行就是一个数组元素 file(); 3.读取文件若成功,则返回从文件中读入的字节数 readfile(); 4.下面这几个函数可对文件进行细致地读取,还可将文件实现类似数据库的操作. fopen(); fread(); //读取指定长度 fgetc(); //读取单个字符 fgets(); //读取一行字符 feof()

R8&mdash;批量生成文件夹,批量读取文件夹名称+R文件管理系统操作函数

一. 批量生成文件夹,批量读取文件夹名称 今日,工作中遇到这样一个问题:boss给我们提供了200多家公司的ID代码(如6007.7920等),需要根据这些ID号去搜索下载新闻,从而将下载到的新闻存到以公司ID生成的指定文件夹下!所以第一个问题就是200多个公司,不可能每一次下载,都要去点击:新建文件夹,然后对文件夹命名,too boring and monotonous.嘿嘿,幸好有R的陪伴! let's do it,来看看R如何完成这些工作! 主要用到两个函数 一. dir.create-生

利用fgets()函数来判断一个文件有多少行

/* 统计一个文件有多少行 *fgets()函数是一个行缓冲的函数 *行缓冲的函数一般有4种情况来刷新缓冲区: *1:缓冲区满了 *2:用fllush刷新缓冲区函数 *3:流的关闭 *4:遇到'\n' *fgets()达到文件尾或读出错返回NULL.可以用foef()来判断是 *出错,还是达到了文件尾. *注意点:fgets(buf,N,fp) *1:如果buf有N个字节,buf满了,则buf中有 * N-1个字节,最后个字节是'\0'. *2:遇见了'\n',把'\n'写出buf中,在'\n'

用VC的read函数读取文件,读取的数据比实际文件大小要少的问题

今天用VC下编译libevent的http-server示例,却发现用浏览器怎么也打不开网页,跟踪下来,发现运行到 evbuffer_add_file 函数就阻塞了 起初怀疑是 libevent的evbuffer_add_file函数实现有Bug,所以自己写了个简单的实现来替换 //evbuffer_add_file(evb, fd, 0, st.st_size); char *xbuf = (char *)malloc(st.st_size); int n = read(fd, xbuf, s