php 큰 파일을 읽다 사면 메모리 제한에 걸러서 안되는 경우가 있는데 yield 을 사용하면 큰 파일등 처리할 수 있다.
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 65014928 bytes) in /root/yield.php on line 7
<?php function makeCSV($file) { $f=fopen($file,rb);
while(feof($f) === false) {
// $data .= fgets($f, 4096); yield fgets($f, 4096); } flocse($f); // return $data; }
foreach(makeCSV("/home/iwav/aaa.2023.10.11.csv") as $i) { print_r($i);
}
|