[php]rewind

rewind 함수

rewind 함수는 PHP에서 파일 포인터를 파일의 시작 지점으로 되돌리는 함수입니다. 이 함수는 파일을 읽거나 쓸 때 파일 포인터를 조작할 때 유용하게 사용됩니다.

사용법:

bool rewind ( resource $handle )
  • $handle: 파일 핸들(resource)입니다. 파일을 열고 해당 핸들을 사용하여 파일을 조작합니다.

예제:

$file = fopen('example.txt', 'r');

if ($file) {
    // 파일을 읽기 시작 지점으로 되돌림
    rewind($file);
    // 파일 내용을 읽음
    $content = fread($file, filesize('example.txt'));
    echo $content;
    fclose($file);
}

rewind 함수를 응용한 코드

1. 파일에서 처음 두 줄만 읽어오기

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

if ($file) {
    rewind($file);

    for ($i = 0; $i < 2; $i++) {
        $line = fgets($file);
        echo $line;
    }

    fclose($file);
}

rewind 함수와 다른 함수 사용하여 응용하는 코드

2. 파일에서 특정 문자열을 찾고, 해당 위치부터 다시 읽기

$searchString = 'needle';
$file = fopen('data.txt', 'r');

if ($file) {
    while (($line = fgets($file)) !== false) {
        if (strpos($line, $searchString) !== false) {
            echo 'Found "' . $searchString . '" in: ' . $line . PHP_EOL;
            // 파일 포인터를 해당 위치로 되돌림
            rewind($file);
            // 해당 위치부터 다시 읽기
            $content = fread($file, filesize('data.txt'));
            echo 'Remaining content after the found line:' . PHP_EOL;
            echo $content;
            break;
        }
    }

    fclose($file);
}

rewind 함수와 조건문, 반복문 사용하는 샘플 코드

3. 파일에서 특정 단어가 몇 번 등장하는지 세기

$searchWord = 'apple';
$file = fopen('fruits.txt', 'r');

if ($file) {
    rewind($file);
    $count = 0;

    while (($line = fgets($file)) !== false) {
        $words = explode(' ', $line);
        foreach ($words as $word) {
            if (trim($word) === $searchWord) {
                $count++;
            }
        }
    }

    fclose($file);

    echo 'The word "' . $searchWord . '" appears ' . $count . ' times in the file.';
}

성능 향상을 위한 팁

  • rewind 함수는 파일 포인터를 이동시키는 작업을 수행하기 때문에 반복적인 호출은 성능 저하를 초래할 수 있습니다. 파일을 읽거나 쓸 때에는 최소한으로 파일 포인터를 조작하는 것이 좋습니다.
  • 대량의 파일을 처리할 때는 파일 I/O 작업을 최소화하여 성능을 향상시킬 수 있습니다. 메모리 캐싱이나 적절한 버퍼링을 고려해야 합니다.

게시됨

카테고리

,

작성자