Как прочитать 11 МБ textfile в php? - PullRequest
0 голосов
/ 04 апреля 2011

Я читаю 11 Мб текстового файла с php:

$data_array = array();

$counter = 0;        

while(!feof($fh))  {

    $buffer = fgets($fh, 4096);

    $data_array[$counter] = $buffer;

    $counter++;
}

Затем я хочу использовать функцию implode, чтобы получить все в одну переменную.

$data = implode("",$data_array); 

Но скрипт ничего не делает.Если я пытаюсь сохранить данные в одну переменную во время цикла, это займет очень много времени.
Есть ли другой способ, как это сделать?Мне нужно, чтобы данные из текстового файла 11 МБ в одной переменной в php.

Ответы [ 3 ]

9 голосов
/ 04 апреля 2011

Прежде всего, вы пытаетесь изобрести велосипед. Для этого в PHP уже есть функция:

$data = file_get_contents($filename) 

Во-вторых, если вы не получаете никаких результатов, проверьте память и ограничения по времени, которые вы установили в php.ini.

0 голосов
/ 04 апреля 2011

Вы должны попытаться сделать текстовый файл меньшими частями, если можете. Кроме того, в файле php.ini есть ограничение на выполнение, которое по умолчанию должно составлять 30 секунд, после чего выполнение сценария прекращается.

0 голосов
/ 04 апреля 2011

вы пробовали $data = file_get_contents('filename');?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...