Переменную не обработать

rotoZOOM

ACM maniac
Не думаю, что гигабайтный файл без переносов строк вообще возможен. Скорее всего любой текстовый файл будет с форматированием
Ты хоть раз в html'ник заглядывал? А между прочим - это текстовый файл с форматированием.
 

Anarki

Новичок
Построчно обрабатывать 7мб+ файлы в php это жесть, особенно если это обычный текст.
 

Monah IRH

Новичок
Обычный да)
Там html страничка - лог. Представляет собой формы и таблицы. Скрпит определенным образом автоматически настраивает фильтры,а потом анализирует полученный лог. Для большенства контрагентов лог содержит не более мегабайта информации с учетом html тегов, но вот как видите появлялась ситуация, когда лог превышал 7 метров. Это с учетом html тегов, большенство из которых tr, td и т.п.

это прост дополнение к разговору)
 

dimagolov

Новичок
Bu-Bu, ты уже своей дремучестью и самоуверенностью начал напрягать. Если ты не в курсе, то форматирование строк в html достигается например тегом <br />, а переноы строк никакой функциональной нагрузни не несут, более того, они часто просто вредны и мешают броузеру правильно отобразить верстку. поэтому лог в html на 7 метров без единого \n это реальность.
 

Bu-Bu

Любитель PHP
Пять баллов недремучему dimagolov! Если какой-то придурок делает такой лог (хотелось бы пример посмотреть для анализа - что в нем разобрать можно будет), то это не значит, что нужно орать на весь лес, что ты самый крутой программер! Поверь, что я хоть и любитель, но у меня сайт работает как часы уже много лет, хотя там наворочено достаточно. А если бы даже такой безумный лог и существует, то лучше ему сделать wrap, а потом разбирать по строкам - однозначно!

-~{}~ 10.08.08 18:21:

Автор оригинала: Monah IRH
Обычный да)
Там html страничка - лог. Представляет собой формы и таблицы. Скрпит определенным образом автоматически настраивает фильтры,а потом анализирует полученный лог. Для большенства контрагентов лог содержит не более мегабайта информации с учетом html тегов, но вот как видите появлялась ситуация, когда лог превышал 7 метров. Это с учетом html тегов, большенство из которых tr, td и т.п.

это прост дополнение к разговору)
А зачем в логе форматирование??? Не проще ли записывать данные в файл в виде $a,$b,$c и т.д., а потом форматируй сколько влезет при выводе или анализе? По-моему, верх изврата налицо!
 

Monah IRH

Новичок
Лог, как я уже говорил создан малость для других целей. И лог это не мой скрипт. Моё дело его анализировать. работаю с тем, что есть.

А если бы даже такой безумный лог и существует
Тут ты не прав. Поверь существует и достаточно много где. От этого легко избавиться, но не все избавляются. Чаще всего такие вещи происходят, когда код страницы генерируется скриптом. Ему все-равно есть там форматирование или нет и он фигачит все подряд. Да это минус.. Но визуальное отображение от этого не страдает и поэтому часто на это забивают. При этом чтение html кода такой страницы затруднено.
 

Bu-Bu

Любитель PHP
Может быть. Но это уже не область программирования, а скорее область медицины. Если человек делает лог, то должен предполагать, что его кто-то будет читать. Не знаю, я бы, например, при чтении все равно его порубил бы по "<tr>, а другие пусть анализируют как им вздумается.
 

rotoZOOM

ACM maniac
Bu-Bu Ты придуриваешься или на тебя книжка Котерова раза три упала?
Если человек делает лог, то должен предполагать, что его кто-то будет читать.
Да, например программы анализаторы логов, которым вообще по барабану твои переносы строк '\n', они все сами отформатируют и представят в удобоваримом виде.
 

Bu-Bu

Любитель PHP
Мы о программах говорим или о PHP? Придуриваешься ты, если считаешь, что я Котерова читал. И вообще, маненько за языком следите тут, от ваших реплик воняет за версту!
 

rotoZOOM

ACM maniac
Bu-Bu Что ж Вы тут сидите, раз Вам не комфортно? О всех личных неприязнях можете писать в личную почту, а здесь постарайтесь отвечать по теме.
 

Bu-Bu

Любитель PHP
То же самое могу адресовать Вам. Я тут не сижу а дискутирую и строго по теме и без личностей.
 

Breeze

goshogun
Команда форума
Партнер клуба
Это когда "умельцы" злоупотребляют file_get_contents. Большие файлы умные дяди открывают с помощью file.
пока все про переносы строк говорят, спрошу:

какой из этих вариантов съест больше памяти для одного и того же файла?
И приведу такой пример: лог-файл апача на 250мб. тоже file? ))
Там строки маленькие, да. И что?
 

Bu-Bu

Любитель PHP
Автор оригинала: Breeze
пока все про переносы строк говорят, спрошу:

какой из этих вариантов съест больше памяти для одного и того же файла?
И приведу такой пример: лог-файл апача на 250мб. тоже file? ))
Там строки маленькие, да. И что?
Это уже монстры, которые открывают только хостеры и я говорил не о таких файлах а о файлах разумной величины. Такой скорее всего можно открыть только строкой частями, но для анализа я бы например эти части порезал на строки и обработал бы циклом.
 

Anarki

Новичок
Так, для справки, 816к элементов массива(там числа) в php уже занимают 80мб памяти. Это по сути индекс для файла весом в 10мб(в самом файле строки короткие, словосочетания на строчку). Я не знаю что будет если этот весь файл в массив запихать, сколько php памяти сожрет. Это к вопросу о file()

Построчно считывать 250мб файл очень долго, если строчки "короткие".
 

Bu-Bu

Любитель PHP
Это все теория. Вряд ли кому понадобится в здравом уме такие файлы плодить и потом их открывать через пых-пых. По-моему флейм развернули на пустом месте. Обычные файлы в сети далеко до 1 Мб, а все остальное проще скачать и посмотреть на домашнем компе, раз уж свербит там что-то поковырять. А в диапазоне до 1 Мб - file + цикл быстрее, чем регэкспы с file_get_contents
 

Anarki

Новичок
Автор оригинала: Bu-Bu
Это все теория. Вряд ли кому понадобится в здравом уме такие файлы плодить и потом их открывать через пых-пых. По-моему флейм развернули на пустом месте. Обычные файлы в сети далеко до 1 Мб, а все остальное проще скачать и посмотреть на домашнем компе, раз уж свербит там что-то поковырять. А в диапазоне до 1 Мб - file + цикл быстрее, чем регэкспы с file_get_contents
Почему теория, вот мне пришлось провести такой эксперимент, а эксперимент это уже практика. А что будет в продакшене - это другое дело.
 

Breeze

goshogun
Команда форума
Партнер клуба
Построчно считывать 250мб файл очень долго, если строчки "короткие".
правильно. потому для больших объемов ни file, ни file_get_contents не подходят.

ЗЫ: а если кому-то не приходилось работать с такими файлами, то это не значит что такая задача не возникает у других.
 
Сверху