>  기사  >  백엔드 개발  >  PHP 파일 작업: 파일을 한 줄씩 읽기

PHP 파일 작업: 파일을 한 줄씩 읽기

青灯夜游
青灯夜游원래의
2021-08-03 17:09:399279검색

이전 기사 "php 파일 작업 - 문자 단위로 파일 읽기"에서 파일을 문자 단위로 읽는 방법을 소개했습니다. 이번 글에서는 파일을 읽는 또 다른 방법을 보여드리겠습니다. 파일 내용을 한 줄씩 읽고 출력하는 방법을 함께 배워보겠습니다.

"test.txt"라는 텍스트 파일이 있는데 그 내용은 다음과 같습니다.

PHP 파일 작업: 파일을 한 줄씩 읽기

파일의 내용을 한 줄씩 읽고 출력하려면 어떻게 해야 하나요? 간단합니다. 오늘은 두 가지 방법을 소개하겠습니다.

방법 1: fgets() 함수 사용

코드 예제를 살펴보겠습니다.

<?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 = fgets($handle,1024))) {        //循环读取文件内容
    echo $char."<br>";
}
fclose($handle);                                    //关闭文件
?>

출력 결과:

PHP 파일 작업: 파일을 한 줄씩 읽기

핵심 함수 분석:

fgets() 함수는 다음 작업에 사용됩니다. 필수 매개변수 $file(열려 있는 파일)과 선택적 매개변수 $length(열릴 바이트 수)를 허용하여 파일에서 데이터 한 줄을 읽습니다. 읽기); $length 매개변수가 생략된 경우 기본 읽기 길이는 1k(예: 1024바이트)입니다. $file(被打开的文件)和一个可选参数$length(要读取的字节数);如果省略了 $length 参数,则默认读取 1k(即1024字节)长度。

fgets()函数在遇到换行符EOF(读到文件末尾)或者到达指定长度 $length-1 后停止(返回字符串长度最大值为 $length-1 个字节)。

如果我们不知道文件中有多少数据,可以使用filesize()函数来获取,该函数可以返回指定文件的大小(字节数)。

所以上面的代码示例可以修改一下:

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

输出结果和上面是一样的。

方法2:使用fgetss()函数

我们来看看代码示例:

<?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 = fgetss($handle,1024))) {        //循环读取文件内容
    echo $char."<br>";
}
fclose($handle);                                    //关闭文件
?>

输出结果:

PHP 파일 작업: 파일을 한 줄씩 읽기

关键函数分析:

fgetss()函数和fgets()函数相似,都可以从打开的文件中读取一行数据,不同的是fgetss()函数会过滤掉数据中的 HTML 和 PHP 标签。

fgetss() 函数接受一个必需参数$file、两个可选参数$length$tags。参数$file和$length在fgets()函数中介绍过来,大家可以去上文了解。而参数$tags是用来指定哪些标记不被去掉,我们通过一个例子来具体了解一下:

PHP 파일 작업: 파일을 한 줄씩 읽기

<?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 = fgetss($handle,1024,"<h1>,<em>"))) {        //循环读取文件内容
    echo $char."<br>";
}
fclose($handle);                                    //关闭文件
?>

在上面的代码中,我们设置参数$tags的值为“<h1>,<em></em> </h1>”,也就是不过滤<h1></h1><em></em>

fgets() 함수는 개행 문자, EOF(파일 끝까지 읽기)를 발견하거나 지정된 길이 $length-1에 도달한 후 중지됩니다. code> (반환된 문자열의 최대 길이는 <code>$length-1바이트입니다.)

PHP 파일 작업: 파일을 한 줄씩 읽기파일에 얼마나 많은 데이터가 있는지 모르는 경우 filesize() 함수를 사용하여 데이터를 얻을 수 있으며, 이는 지정된 파일의 크기(바이트 수)를 반환할 수 있습니다.

따라서 위의 코드 예제는 다음과 같이 수정될 수 있습니다. rrreee출력 결과는 위와 동일합니다.

방법 2: fgetss() 함수 사용

코드 예제를 살펴보겠습니다. rrreee출력 결과: PHP 파일 작업: 파일을 한 줄씩 읽기

주요 함수 분석: 🎜🎜fgetss() 함수는 fgets() 함수와 유사하며 둘 다 가능합니다. 열린 파일에서 얻은 데이터 행을 읽으십시오. 차이점은 fgetss() 함수가 데이터에서 HTML 및 PHP 태그를 필터링한다는 것입니다. 🎜🎜fgetss() 함수는 하나의 필수 매개변수 $file, 두 개의 선택적 매개변수 $length$tags를 허용합니다. $file 및 $length 매개변수는 위에서 fgets() 함수에 도입되었습니다. $tags 매개변수는 제거되지 않을 태그를 지정하는 데 사용됩니다. 예를 통해 이에 대해 자세히 알아 보겠습니다. 🎜🎜PHP 파일 작업: 파일을 한 줄씩 읽기🎜rrreee🎜위 코드에서는 $tags 매개변수의 값을 "로 설정했습니다. <h1>,<em></em> </h1>", 즉 <h1></h1><em></em> 태그는 필터링되지 않으므로 출력은 결과는 다음과 같습니다: 🎜🎜🎜🎜 🎜🎜참고: 🎜파일을 작업한 후 fclose() 함수를 사용하여 파일을 닫는 것을 잊지 마세요! 🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜PHP 파일의 기본 조작🎜🎜🎜🎜추천: 🎜"🎜PHP 면접 질문 모음(모음)🎜" "🎜php 동영상 튜토리얼🎜"🎜

위 내용은 PHP 파일 작업: 파일을 한 줄씩 읽기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.