이전 기사 "php 파일 작업 - 문자 단위로 파일 읽기"에서 파일을 문자 단위로 읽는 방법을 소개했습니다. 이번 글에서는 파일을 읽는 또 다른 방법을 보여드리겠습니다. 파일 내용을 한 줄씩 읽고 출력하는 방법을 함께 배워보겠습니다.
"test.txt"라는 텍스트 파일이 있는데 그 내용은 다음과 같습니다.
파일의 내용을 한 줄씩 읽고 출력하려면 어떻게 해야 하나요? 간단합니다. 오늘은 두 가지 방법을 소개하겠습니다.
방법 1: fgets() 함수 사용
코드 예제를 살펴보겠습니다.
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $handle = fopen('./test.txt', 'r'); //打开文件 if (!$handle) { //判断文件是否打开成功 echo '文件打开失败!'; } while (false !== ($char = fgets($handle,1024))) { //循环读取文件内容 echo $char."<br>"; } fclose($handle); //关闭文件 ?>
출력 결과:
핵심 함수 분석:
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 = './test.txt'; $handle = fopen($url, 'r'); //打开文件 $size= filesize($url); //计算文件大小 if (!$handle) { //判断文件是否打开成功 echo '文件打开失败!'; } while (false !== ($char = fgets($handle,$size))) { //循环读取文件内容 echo $char."<br>"; } fclose($handle); //关闭文件 ?>
输出结果和上面是一样的。
方法2:使用fgetss()函数
我们来看看代码示例:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $handle = fopen('./test.txt', 'r'); //打开文件 if (!$handle) { //判断文件是否打开成功 echo '文件打开失败!'; } while (false !== ($char = fgetss($handle,1024))) { //循环读取文件内容 echo $char."<br>"; } fclose($handle); //关闭文件 ?>
输出结果:
关键函数分析:
fgetss()函数和fgets()函数相似,都可以从打开的文件中读取一行数据,不同的是fgetss()函数会过滤掉数据中的 HTML 和 PHP 标签。
fgetss() 函数接受一个必需参数$file
、两个可选参数$length
和$tags
。参数$file和$length在fgets()函数中介绍过来,大家可以去上文了解。而参数$tags
是用来指定哪些标记不被去掉,我们通过一个例子来具体了解一下:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $handle = fopen('./test.txt', 'r'); //打开文件 if (!$handle) { //判断文件是否打开成功 echo '文件打开失败!'; } while (false !== ($char = fgetss($handle,1024,"<h1>,<em>"))) { //循环读取文件内容 echo $char."<br>"; } fclose($handle); //关闭文件 ?>
在上面的代码中,我们设置参数$tags的值为“<h1>,<em></em>
</h1>
”,也就是不过滤<h1></h1>
和<em></em>
개행 문자
, EOF
(파일 끝까지 읽기)를 발견하거나 지정된 길이 $length-1에 도달한 후 중지됩니다. code> (반환된 문자열의 최대 길이는 <code>$length-1
바이트입니다.) 파일에 얼마나 많은 데이터가 있는지 모르는 경우 filesize()
함수를 사용하여 데이터를 얻을 수 있으며, 이는 지정된 파일의 크기(바이트 수)를 반환할 수 있습니다.
따라서 위의 코드 예제는 다음과 같이 수정될 수 있습니다. rrreee출력 결과는 위와 동일합니다.
코드 예제를 살펴보겠습니다. rrreee출력 결과:
주요 함수 분석: 🎜🎜fgetss() 함수는 fgets() 함수와 유사하며 둘 다 가능합니다. 열린 파일에서 얻은 데이터 행을 읽으십시오. 차이점은 fgetss() 함수가 데이터에서 HTML 및 PHP 태그를 필터링한다는 것입니다. 🎜🎜fgetss() 함수는 하나의 필수 매개변수$file
, 두 개의 선택적 매개변수 $length
및 $tags
를 허용합니다. $file 및 $length 매개변수는 위에서 fgets() 함수에 도입되었습니다. $tags
매개변수는 제거되지 않을 태그를 지정하는 데 사용됩니다. 예를 통해 이에 대해 자세히 알아 보겠습니다. 🎜🎜🎜rrreee🎜위 코드에서는 $tags 매개변수의 값을 "로 설정했습니다. <h1>,<em></em>
</h1>
", 즉 <h1></h1>
및 <em></em>
태그는 필터링되지 않으므로 출력은 결과는 다음과 같습니다: 🎜🎜🎜🎜 🎜🎜참고: 🎜파일을 작업한 후 fclose() 함수를 사용하여 파일을 닫는 것을 잊지 마세요! 🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜PHP 파일의 기본 조작🎜🎜🎜🎜추천: 🎜"🎜PHP 면접 질문 모음(모음)🎜" "🎜php 동영상 튜토리얼🎜"🎜위 내용은 PHP 파일 작업: 파일을 한 줄씩 읽기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!