2010-09-09 5 views

ответ

3

Вы можете открыть файл, используя fopen, прочитать строки, используя fgets.

$fh = fopen("file", "r"); // open file to read. 

while (!feof($fh)) { // loop till lines are left in the input file. 
     $buffer = fgets($fh); // read input file line by line. 
     ..... 
     }  
}  

fclose($fh); 
6

Если вам не нужна работа со всеми данными в тот же момент, вы можете прочитать их в деталях. Пример для двоичных файлов:

<?php 
$handle = fopen("/foo/bar/somefile", "rb"); 
$contents = ''; 
while (!feof($handle)) { 
    $block = fread($handle, 8192); 
    do_something_with_block($block); 
} 
fclose($handle); 
?> 

Приведенных выше пример может сломаться мультибайтными кодировки (в случае, если есть многобайтовый через границу 8192 байт - например Ǿ в UTF-8), так и для файлов, которые имеют значимые лицевые линии (например, текст), попробуйте следующее:

<?php 
$handle = fopen("/foo/bar/somefile", "rb"); 
$contents = ''; 
while (!feof($handle)) { 
    $line = fgets($handle); 
    do_something_with_line($line); 
} 
fclose($handle); 
?> 
+1

Насколько я знаю, 'fgets()' все равно испортит его, если в кодировке файла нет ASCII-совместимых однобайтовых строк, например. UTF-16. – scy

Смежные вопросы