[PHP] 여러개의 파일 읽기 (fopen multiple files in php)

리눅스/OS 일반|2022. 4. 19. 10:56
반응형

1. 특정 파일을 지정해서 읽을 경우 (array 배열에 파일명을 넣어줍니다)

<?PHP
$filenames = array("../logs/detect.log.1", "../logs/detect.log");
foreach ($filenames as $file) {
    $file_handle = fopen($file, "r");
    while (!feof($file_handle)) {
        $line = fgets($file_handle);
        echo $line;
    }
    fclose($file_handle);
}
?>

[출처] https://stackoverflow.com/questions/47992424/using-php-how-to-read-multiple-text-files-and-display-the-file-name

 

존재하는 파일만 읽고 싶은 경우, 파일이 있을때만 array 에 넣는 방법으로 해도 됩니다.

<?php
$filenames = array();

if (file_exists("../logs/detect.log.1")) {
    array_push($filenames, "../logs/detect.log.1");
}

if (file_exists("../logs/detect.log")) {
    array_push($filenames, "../logs/detect.log");
}

if (count($filenames) != "0") {  // 존재하는 파일이 한개라도 있을경우
    foreach ($filenames as $file) {
        $file_handle = fopen($file, "r");
        while (!feof($file_handle)) {
            $line = fgets($file_handle);
            echo $line;
        }
        fclose($file_handle);
    }
}
?>

 

2. 다수의 파일을 읽을 경우 ( * 과 같은 와일드 카드 문자를 이용합니다.)

<?php
foreach (glob("../logs/detect.log*") as $file) {
    $file_handle = fopen($file, "r");
    while (!feof($file_handle)) {
        $line = fgets($file_handle);
        echo $line;
    }
    fclose($file_handle);
}
?>

[출처] https://stackoverflow.com/questions/18558445/read-multiple-files-with-php-from-directory

 

반응형

댓글()