Обработка большого текстового файла

Статус
Закрыто для дальнейших ответов.

alexbbell

New Member
Регистрация
26.12.2005
Сообщения
8
Есть текстовый файл объемом 25 мегабайт с содержимом, свернутым через serialize.
Т.е. если я сделаю unserialize(text) у меня хэш. По идее, 3 строчки кода должно быть.

Но не получается.

Делал через этапы:

1. Считывание файла
$handle = file("leks.dmp");

2. Сборка в строку
$text = implode("\n", $handle);

3. Вывод
$res = unserialize($text);


Скорей всего причина в нехватке ресурсов.

Подскажите, как можно решить эту проблему?
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
ну не знаю, а зачем вам с такими файлами работать?
для начала:

$res = unserialize(file_get_contents("leks.dmp"));

я бы разбивал файл на несколько.
 

alexbbell

New Member
Регистрация
26.12.2005
Сообщения
8
ну не знаю, а зачем вам с такими файлами работать?
для начала:

$res = unserialize(file_get_contents("leks.dmp"));

я бы разбивал файл на несколько.
Я б тоже разбивал на несколько :)
Но вот в таком виде прислали дамп базы

Непонятно, как его ручками бы порезать
 

DnAp

self::setDebugMode(true);
Регистрация
30.04.2005
Сообщения
490
Сталкивался с таким, при переносе какой-то информации...
Вобщем решений нет, прийдеться сериалайзить по очереди, порциями...

А если нет, то все что приходит на ум это написать парсер ручками.. тк синтаксис там довольно понтный...
 

alexbbell

New Member
Регистрация
26.12.2005
Сообщения
8
Спасибо за помощь!

Забыл я про file_get_contents

Нужно просто скрипт запустить без вывода контента в консоли и тогда все успевает сработать!
Реально файл отпарсился и в нужном формате был записан в новый файл секунд за 15-20 на P-III 750
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
Так вы еще и выводили ? >:)
 

NAR

New Member
Регистрация
16.03.2007
Сообщения
7
Чел ты думал когда такой файл создавал. По идее тебе просто не хватит ресурсов сервера. Сделай лучше несколько файлов по 5, а еще лучше избавься от такого огромного файла.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ