[php]fseek

PHP의 fseek 함수

fseek 함수는 파일 포인터의 위치를 변경하여 파일에서 원하는 위치로 이동할 때 사용됩니다. 이 함수를 사용하여 파일의 특정 위치로 이동한 후 데이터를 읽거나 쓸 수 있습니다.

fseek 함수의 사용 예시:

$filename = 'data.txt';
$fileHandle = fopen($filename, 'r');

if ($fileHandle) {
    // 파일 포인터를 50바이트 위치로 이동
    fseek($fileHandle, 50);
    
    // 이후 데이터를 읽음
    $data = fread($fileHandle, 1024);
    
    echo "Data at 50 bytes position: " . $data;
    
    fclose($fileHandle);
} else {
    echo "Failed to open the file.";
}

위 예시는 파일 ‘data.txt’를 읽기 모드로 열고, 파일 포인터를 50바이트 위치로 이동한 후 1024바이트의 데이터를 읽어옵니다.

다른 함수와 함께 사용하는 예시:

  1. ftell 함수와 함께 사용하여 현재 파일 포인터 위치 파악:
$filename = 'data.txt';
$fileHandle = fopen($filename, 'r');

if ($fileHandle) {
    // 파일 포인터를 50바이트 위치로 이동
    fseek($fileHandle, 50);
    
    // 파일 포인터의 현재 위치를 파악
    $currentPosition = ftell($fileHandle);
    
    echo "Current file pointer position: $currentPosition";
    
    fclose($fileHandle);
} else {
    echo "Failed to open the file.";
}

위 예시는 파일 포인터를 50바이트 위치로 이동한 후, 현재 파일 포인터의 위치를 파악하여 출력합니다.

조건문과 반복문과 함께 사용하는 예시:

$filename = 'data.txt';
$fileHandle = fopen($filename, 'r');

if ($fileHandle) {
    // 파일 포인터를 0바이트 위치로 이동
    fseek($fileHandle, 0);
    
    // 파일의 첫 줄을 읽어옴
    $line = fgets($fileHandle);
    
    // 파일 포인터가 파일 끝에 도달할 때까지 반복
    while (!feof($fileHandle)) {
        echo "Line: " . $line;
        // 다음 줄로 이동
        $line = fgets($fileHandle);
    }
    
    fclose($fileHandle);
} else {
    echo "Failed to open the file.";
}

위 예시는 파일 포인터를 처음으로 이동한 후, 파일의 모든 줄을 읽어와서 출력합니다.

성능 향상을 위한 팁:

  1. fseek 함수는 파일 포인터를 원하는 위치로 이동시키기 때문에, 데이터를 읽기 전에 정확한 위치로 파일 포인터를 이동시키는 것이 중요합니다. 잘못된 위치로 이동할 경우 데이터를 올바르게 읽어올 수 없습니다.

게시됨

카테고리

,

작성자