<?php
// 기사 제목:사용 stream_get_meta_data 파일 스트림의 읽기 오프셋을 보는 방법?
/*
존재하다 PHP 가운데,파일 작업은 일반적으로 파일 스트림을 통해 데이터를 읽거나 쓸 필요가 있습니다.。보통,읽기 및 쓰기 작업으로 파일 흐름 변경,特别예존재하다读取文件时,파일 스트림의 오프셋은 중요한 표시기입니다.。운 좋게,PHP 제공 `stream_get_meta_data()` 기능,현재 파일 스트림의 메타 데이터를 편리하게 볼 수 있습니다.,오프셋을 포함하여 읽습니다。
本文将介绍좋다何사용 `stream_get_meta_data()` 기능来查看文件流的读取偏移量。
*/
///////////////////////////// 텍스트 /////////////////////////////
### 파일 스트림의 오프셋은 무엇입니까??
존재하다读取文件时,파일 스트림에는 현재 오프셋이 있습니다,表示下一个读取操作从文件가운데的哪个位置开始。읽을 때마다,오프셋이 자동으로 업데이트됩니다。예를 들어,파일 크기가 있다고 가정합니다 100 바이트,현재 오프셋은입니다 50 바이트,다음 읽기 작업은 파일에서 나옵니다. 51 바이트开始。
这个偏移量通常예由文件操作기능(좋다 `fread()` 또는 `fgets()`)자동으로 관리되었습니다。파일 읽기 작업 디버깅 및 최적화에 오프셋 이해가 중요합니다.,尤其예존재하다处理大文件时。
### `stream_get_meta_data()` 기능简介
`stream_get_meta_data()` 예 PHP 的一个内置기능,파일 스트림의 메타 데이터 정보를 얻는 데 사용됩니다。이 정보에는 현재 오프셋이 포함됩니다、스트림 유형(예를 들어读/쓰기 모드)、流예否已到达文件末尾等。
语法좋다下:
```php
array stream_get_meta_data(resource $stream);
스트림 : 파일 스트림 리소스. 이 리소스는 fopen () 또는 이와 유사한 함수로 열리는 파일 스트림이어야합니다.
반환 값 :이 함수는 파일 스트림 메타 데이터를 포함하는 연관 배열을 반환합니다.
그 중에서도 Stream_get_meta_data () 에 의해 반환 된 배열에는 많은 정보가 포함되어 있지만 대부분의 관심사는 찾을 수 있고 말할 수 있습니다 .
찾기 가능 : 파일 스트림이 주소 지정 가능한 경우 true를 반환합니다 (즉, 오프셋은 fseek () 에 의해 이동할 수 있습니다). 그렇지 않으면 false를 반환합니다.
말 : 현재 파일 스트림의 오프셋을 나타냅니다.
파일 스트림의 읽기 오프셋을 보려면 먼저 파일 스트림을 열어야합니다. 그런 다음 메타 데이터는 stream_get_meta_data () 함수를 통해 얻어지고 오프셋은 반환 된 배열에서 추출됩니다.
다음은 파일 스트림의 읽기 오프셋을 보는 방법을 보여주는 간단한 예입니다.
<?php
// 파일 스트림을 엽니 다
$file = fopen('example.txt', 'r');
// 检查文件예否成功打开
if ($file) {
// 파일을 읽기 전에 10 바이트
fread($file, 10);
// 파일 스트림의 메타 데이터를 가져옵니다
$metadata = stream_get_meta_data($file);
// 현재 읽기 오프셋을 출력합니다
echo "현재 읽기 오프셋: " . $metadata['tell'] . "\n";
// 파일 스트림을 닫습니다
fclose($file);
} else {
echo "파일을 열 수 없습니다。\n";
}
?>
이 예에서는 먼저 fopen ()을 사용하여 파일 example.txt를 열고 fread ()를 사용하여 처음 10 바이트의 데이터를 읽습니다. 다음으로 스트림 스트림의 메타 데이터를 가져 와서 현재 오프셋을 출력하려면 stream_get_meta_data ()를 호출하십시오.
실제 개발에서 특히 많은 양의 데이터를 처리 할 때 파일 스트림의 오프셋을 지속적으로 확인해야 할 수도 있습니다. stream_get_meta_data () 에 대한 반복 호출을 피하기 위해 불필요한 기능 호출을 줄이고 성능을 향상시키기 위해 결과를 변수로 저장하는 것을 고려할 수 있습니다.
<?php
// 파일 스트림을 엽니 다
$file = fopen('example.txt', 'r');
// 检查文件예否成功打开
if ($file) {
// 파일을 읽기 전에 10 바이트
fread($file, 10);
// 파일 스트림의 메타 데이터를 가져옵니다
$metadata = stream_get_meta_data($file);
// 현재 읽기 오프셋을 출력합니다
$currentOffset = $metadata['tell'];
echo "현재 읽기 오프셋: " . $currentOffset . "\n";
// 다시 읽으십시오 20 바이트
fread($file, 20);
// 업데이트 된 파일 스트림 메타 데이터를 얻으십시오
$metadata = stream_get_meta_data($file);
echo "업데이트 된 읽기 오프셋: " . $metadata['tell'] . "\n";
// 파일 스트림을 닫습니다
fclose($file);
} else {
echo "파일을 열 수 없습니다。\n";
}
?>
이러한 방식으로 여러 읽기 작업 후 파일 스트림의 오프셋 변경 사항을 유연하게 볼 수 있습니다.
stream_get_meta_data ()는 현재 읽기 오프셋을 포함하여 파일 스트림의 메타 데이터를 쉽게 볼 수있는 매우 실용적인 PHP 기능입니다. 오프셋을 이해함으로써 파일 읽기 작업을 더 잘 제어하고 성능을 최적화하며 오류를 줄일 수 있습니다.
파일 작업 중에 파일의 현재 읽기 위치를 추적 해야하는 경우 Stream_get_meta_data () 는 매우 가치있는 도구입니다.