Спустя 1 день, 15 часов, 55 минут, 42 секунды (26.11.2011 - 14:52) sx000 написал(а):
помогите пожалуйста не как не могу придумать как прочитать одну огромную строку ... и еще формат же JSON нарушится
Спустя 17 минут, 28 секунд (26.11.2011 - 15:09) zeromind написал(а):
ну ты пробывал json_encode ? что на клиент приходит?
вообще не понятно, ты с сервера на клиент хочешь отправить? или наооборот?
если с сервера на клиент, то данные в { : } не долны быть, json_encode - сам сериализует данные к типу JSON и на клиенте уже всё будет готово как надо.. ток спарсить надо будет данные..
вообще не понятно, ты с сервера на клиент хочешь отправить? или наооборот?
если с сервера на клиент, то данные в { : } не долны быть, json_encode - сам сериализует данные к типу JSON и на клиенте уже всё будет готово как надо.. ток спарсить надо будет данные..
Спустя 45 минут, 45 секунд (26.11.2011 - 15:55) sx000 написал(а):
Может я пояснил не так, еще раз попробую.
file.json - весит 80 мегабайт.
ответ сервера
Fatal error: Allowed memory size of 134217728 bytes exhausted
Так вот внутри file.json все одной строкой я уме на приложу как работать с данными от туда
$obj=json_decode(file_get_contents('file.json'), true);
file.json - весит 80 мегабайт.
ответ сервера
Fatal error: Allowed memory size of 134217728 bytes exhausted
Так вот внутри file.json все одной строкой я уме на приложу как работать с данными от туда
Спустя 1 минута, 27 секунд (26.11.2011 - 15:56) Invis1ble написал(а):
да наверное никак, хранить данные в меньших объемах. Либо увеличить объем памяти, выделяемой интерпретатору.
Спустя 1 минута, 20 секунд (26.11.2011 - 15:58) sx000 написал(а):
ну мне отдают в таком формате данные я их привожу в должный вид уже, но я не как не могу отдает стороне приказать изменить формат по этому проблема актуальная
Спустя 1 минута, 53 секунды (26.11.2011 - 16:00) zeromind написал(а):
вообще с большими объемами данных надо работать с XML'ом..
я первый раз вижу такой обьем данных на JSON
теперь хз что делать, попробуй поделить этот файл на 2 равных ?
я первый раз вижу такой обьем данных на JSON
теперь хз что делать, попробуй поделить этот файл на 2 равных ?
Спустя 1 минута, 57 секунд (26.11.2011 - 16:02) sx000 написал(а):
дело в том что у меня текстовый редактор еле ворочает его там одна строка и это просто пипец полный. Может как то побайтово считывать ... парность проверять ...
Спустя 1 минута, 8 секунд (26.11.2011 - 16:03) zeromind написал(а):
вообщем забей на эту тему))
на JSON с такими обьемами данных не работают (на сколько я знаю)
на JSON с такими обьемами данных не работают (на сколько я знаю)
Спустя 22 минуты, 6 секунд (26.11.2011 - 16:25) vital написал(а):
Недавно тоже была такая проблема.
Вобщем, на 50мб джсона, надо 1.5гб памяти для енкода.
В php.ini директива memory_limit вам в помощь.
А вообще да, нельзя так делать. Джсон не предназначен для передачи больших данных.
Вобщем, на 50мб джсона, надо 1.5гб памяти для енкода.
В php.ini директива memory_limit вам в помощь.
А вообще да, нельзя так делать. Джсон не предназначен для передачи больших данных.
Спустя 1 минута, 29 секунд (26.11.2011 - 16:26) Invis1ble написал(а):
vital
Цитата |
Вобщем, на 50мб джсона, надо 1.5гб памяти для енкода. |
1.5 гб ? ты не ошибся, случайно?
Спустя 3 минуты, 13 секунд (26.11.2011 - 16:30) vital написал(а):
Цитата (Invis1ble @ 26.11.2011 - 15:26) | ||
vital
1.5 гб ? ты не ошибся, случайно? |
Неа. Проверь
У нас сначала падала нода на JSON.parse() с нехваткой памяти, у которой по дефолту выделен гиг памяти.
ПОпробовали на пхп - постепенно увеличивая память. 50мб джсона=1.5гб оперативы.
Буду на работе, могу выложить файлик с джсоном, проверьте сами.
Спустя 1 минута, 9 секунд (26.11.2011 - 16:31) Invis1ble написал(а):
Жесть... Да щас времени нет на эксперименты пока что, поверю на слово Спасибо за инфу.
Спустя 14 секунд (26.11.2011 - 16:31) sx000 написал(а):
да меня админы разапнут нафиг дома тока если поставить все
Спустя 48 секунд (26.11.2011 - 16:32) sx000 написал(а):
может кто то скрипт сможет запустить дома? а то у меня не чего не стоит на домашнем железе вообще ...
Спустя 28 секунд (26.11.2011 - 16:32) Invis1ble написал(а):
sx000
ну так дома распили файл на несколько частей и сохрани. А на работе (или где там) работай с кусками.
ну так дома распили файл на несколько частей и сохрани. А на работе (или где там) работай с кусками.
Спустя 1 минута, 19 секунд (26.11.2011 - 16:34) sx000 написал(а):
да не могу распилить у меня редактор вснент нафиг, 1 строка 70 метров этож смерть даже для VI
Спустя 51 секунда (26.11.2011 - 16:34) Invis1ble написал(а):
причем тут редактор, скриптом распили
Спустя 46 секунд (26.11.2011 - 16:35) vital написал(а):
А самое приколькное, что его не так и просто распилить, что бы потом обе части остались валидные - что бы можно было их енкоде-декоде.
Совет - просто сконвертите ваш джсон в хмл. И работайте уже с хмл. Масса готовых конвертилок есть в инете.
Совет - просто сконвертите ваш джсон в хмл. И работайте уже с хмл. Масса готовых конвертилок есть в инете.
Спустя 9 минут, 3 секунды (26.11.2011 - 16:44) Invis1ble написал(а):
vital
Цитата |
А самое приколькное, что его не так и просто распилить, что бы потом обе части остались валидные - что бы можно было их енкоде-декоде. |
хз, вот на скорую руку набросал пример:
$data = array('k1' => 'v1', 'k2' => array('v2.1', 'v2.2'), 'k3' => 'val3');
$array = json_encode($data);
$data2 = json_decode($array, true);
var_dump(array_slice($data2, 1, 1));
все работает вроде норм.
Разбиваем на куски, проходим по ним json_encode и сохраняем в файлы каждый кусок.
ПС. У array_slice() есть еще 4-й параметр - сохранять ключи, на всякий случай можно установить в true, хотя он вроде и так в нем стоит.
ППС. sx000, я бы помог тебе разбить его, но у меня ноут, на нем всего 1.3 ГБ оперативы
Спустя 4 часа, 5 минут, 10 секунд (26.11.2011 - 20:49) sx000 написал(а):
Цитата (vital @ 26.11.2011 - 13:35) |
А самое приколькное, что его не так и просто распилить, что бы потом обе части остались валидные - что бы можно было их енкоде-декоде. Совет - просто сконвертите ваш джсон в хмл. И работайте уже с хмл. Масса готовых конвертилок есть в инете. |
да да вот я подумал в xml сконвертить
Спустя 17 минут, 39 секунд (26.11.2011 - 21:07) Семён написал(а):
Лучше скажи что тебе нужно с этим файлом сделать дальше?
Самописный парсинг файла никто не отменял.
Самописный парсинг файла никто не отменял.
Спустя 1 час, 11 минут, 24 секунды (26.11.2011 - 22:18) Nikitian написал(а):
как вариант, найти повторющиеся элементы, отдать это всё добро на клиента и на js распарсить. Аяксом частями сливать на сервер. Клиент посвопит, но разжуёт в итоге, особенно если какой-нибудь хром, который с яваскриптом нормально дружит.
Спустя 15 часов, 16 минут, 18 секунд (27.11.2011 - 13:35) sx000 написал(а):
Цитата (Семён @ 26.11.2011 - 18:07) |
Лучше скажи что тебе нужно с этим файлом сделать дальше? Самописный парсинг файла никто не отменял. |
мне нужно его перековеркивать под свой построчный формат.
{} строка
{} строка
{} строка
ну формирую строку из данных взятых из {}. Вся проблема в том что я все написал надо вот тоько памяти по больше и все. У меня ноут 2 гига не хватит памяти на 70 метров
Спустя 1 час, 51 минута, 41 секунда (27.11.2011 - 15:26) SlavaFr написал(а):
надо просто писать декодер, который по такому же принципу как и xml- sax парсер работает и вставлять логику в старт , дата и кониц елемента, как это делается в пхп xml_set_element_handler.
в этом случае проблем с размерами файла не будет.
к стате опиши нам структуру json-стринга которую ты должен обработать, а так же что ты собираешся с этими датами делать.
в этом случае проблем с размерами файла не будет.
к стате опиши нам структуру json-стринга которую ты должен обработать, а так же что ты собираешся с этими датами делать.
Спустя 46 минут, 33 секунды (27.11.2011 - 16:13) sx000 написал(а):
структура у json одна и таже этож и есть формат данных что там поля то разглядывать, выше я писал что переделываю под свой формат строчный базу. Мне не надо для постояннки один раз надо конвертнуть ьазу и все. Проще чтоб кто то на форуме взял мой скрипт если есть возможно увеличил на дом машине до 2 гигов php и конвертнул и все. У меня нет такой возможности пока. Чем велосипед изобретать. Это самый разумный вариант по времени.
Спустя 1 час, 36 минут, 50 секунд (27.11.2011 - 17:50) I++ написал(а):
Не понятно какой функционал требуется, вообще при работе с большими файлами, если памяти не достаточно, нужно работу разбивать по кусочкам, и сбрасывать данные в выходной файл, после конца обработки отдавать файл без участия php клиенту, через например ngix.
Не?
P.S давай скрипт и файл )
Не?
P.S давай скрипт и файл )
Спустя 2 минуты, 15 секунд (27.11.2011 - 17:52) sx000 написал(а):
да надо, но ты как соберешь json то? Там одной строкой 70 метров база. ну взял ты 60кб текста а где гарантии что вогли туда парные скобки, а начало json файла? как сним быть. Это это офигенно "удобный" формат. Редактор его не берет даже.
Спустя 2 минуты, 24 секунды (27.11.2011 - 17:54) Invis1ble написал(а):
Цитата |
где гарантии что вогли туда парные скобки |
я вобще-то показал пример, как разбить файл. Ты не удосужился даже запустить его?
Спустя 1 час, 55 минут, 37 секунд (27.11.2011 - 19:50) sx000 написал(а):
да все взял на флешку закатал php и скрипт сходилк товарищу у него 8 гигов, 3 минуты здрасти как дела ... и готово спасибо всем