이전 기사에서는 전체 파일을 한 번에 읽어서 모든 데이터를 얻는 방법을 소개했습니다. 관심이 있으시면 링크를 클릭하여 "php 파일 작업: 의 모든 데이터를 얻는 방법"을 볼 수 있습니다. 파일을 한 번에". 오늘은 필요한 경우 전체 파일을 한 번에 참조할 수 있는 또 다른 방법을 소개하겠습니다.
오늘 소개해드릴 방법은 파일 전체를 한 번에 읽을 수 있을 뿐만 아니라, 읽은 파일 내용을 문자열로 저장할 수도 있다는 점 정말 놀랍지 않나요? 이를 위해서는 PHP 내장 함수 file_get_contents()를 사용해야 합니다. 오늘 이 함수에 대해 알아보겠습니다.
"test.txt" 파일을 예로 들어 보겠습니다. 파일 내용은 다음과 같습니다.
먼저 file_get_contents() 함수를 사용하여 파일을 읽고 내용을 문자열에 저장하는 방법을 살펴보겠습니다.
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $file = 'test.txt'; $filestr = file_get_contents($file); if($filestr){ echo $filestr; }else{ echo '读取失败!'; } ?>
출력 결과:
파일 작업을 열거나 닫을 필요가 없으며, "file_get_contents($file"을 직접 사용하면 전체 파일을 한 번에 읽을 수 있음을 알 수 있습니다. )
" 문, 이는 이전에 소개된 readfile() 함수와 매우 유사하지만 여전히 다릅니다. file_get_contents() 함수는 읽은 데이터를 문자열에 저장하는 반면, readfile() 함수는 읽은 데이터를 저장합니다. 출력 버퍼에서. file_get_contents($file)
”语句就可以一次性读取整个文件了,这一点和之前介绍的readfile()函数很像,但它们还是有所不同的:file_get_contents()函数会将读取的数据存入一个字符串中,而readfile()函数是存入输出缓冲中。
因此readfile()函数不需要echo、print等输出语句就可以输出,直接“readfile($file);
”就行;而file_get_contents()函数需要借助输出语句才能将读取的内容进行输出,“echo file_get_contents($file)
”。
下面我们来具体了解一下file_get_contents()函数的用法:
file_get_contents($filename,$include_path,$context,$offset,$max_length)
函数只有一个必需参数$filename
(要读取的文件,可以是文件名,也可是文件路径),但有4个可省略的参数:$include_path
(默认值FALSE)、$context
(文件句柄环境,值可为NULL)、$offset
(开始读取的位置)、$max_length(读取字节数)。
其中,不能对远程文件使用$offset
参数;如果省略$max_length
参数,则会和上面示例那样,默认读取文件的全部内容。
下面我们来看看$offset
和$max_length
参数。
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $file = 'test.txt'; $filestr1 = file_get_contents($file,FALSE,NULL,3); echo $filestr1; $filestr2 = file_get_contents($file,FALSE,NULL,0,15); echo "<br>".$filestr2; ?>
输出结果:
可以看出,$max_length
参数设置为15,却只获取了7个字符,这是为什么呢?
那是因为:在file_get_contents()函数中一个 UTF-8 编码的汉字占三个字符长度。而如果设置的获取长度不够,无法获取到的那个中文字符,就会显示为?
echo file_get_contents($file)
"로 출력됩니다. file_get_contents() 함수의 사용법을 자세히 살펴보겠습니다. file_get_contents($filename,$include_path,$context,$offset,$max_length)
이 함수에는 필수 매개변수가 하나만 있습니다. $ filename
(읽을 파일은 파일 이름 또는 파일 경로일 수 있음), 그러나 생략할 수 있는 매개 변수는 4개입니다: $include_path
(기본값 FALSE) , $context
(파일 핸들 환경, 값은 NULL일 수 있음), $offset
(읽기 시작 위치), $max_length (읽은 바이트 수).
그 중 $offset
매개변수는 원격 파일에 사용할 수 없으며 $max_length
매개변수를 생략하면 기본적으로 파일의 전체 내용을 다음과 같이 읽습니다. 위의 예에서. $offset
및 $max_length
매개변수를 살펴보겠습니다.
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $file = 'test.txt'; $filestr1 = file_get_contents($file,FALSE,NULL,6); echo $filestr1; $filestr2 = file_get_contents($file,FALSE,NULL,0,16); echo "<br>".$filestr2; $filestr3 = file_get_contents($file,FALSE,NULL,0,18); echo "<br>".$filestr3; ?>🎜🎜
$max_length
매개변수가 15로 설정되어 있는데 7자만 얻어지는 것을 볼 수 있습니다. 왜 그럴까요? 🎜🎜그 이유는 file_get_contents() 함수에서 UTF-8로 인코딩된 한자의 길이가 3자를 차지하기 때문입니다. 그리고 설정된 획득 길이가 부족할 경우 획득할 수 없는 한자는 로 표시되나요? 아니요. 🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 비디오 튜토리얼🎜🎜🎜마지막으로 클래식 강좌인 "🎜PHP 문자열 처리(옥소녀심경편)🎜"을 읽어보시길 추천합니다. 무료입니다~ 와서 배워보세요! 🎜위 내용은 PHP에서 파일의 모든 데이터를 문자열로 저장하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!