![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| PROme |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 23.7.2003 Где: Kiev Репутация: -1 Всего: 1 |
а как насчет этого:
ага, мысля понята, но...
я вобще на ПХП с файлами не очень... не мог бы помочь подправить?
-------------------- SEO-мастер |
||||||||||
|
|||||||||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Вообщем так, я написал класс для удобной работы с большими файлами. Класс не грузит файл в память так что сможешь работать хоть с гигабайтными файлами. Как смогу выложу ссылку на форуме, может кому-нибудь еще интересно будет. Только просьба сохранить строку авторства сверху
Вот результаты на моей машине для 2Мб файла: Liba created: 0.00020098686218262 Lines: 100800 Reading sequentiel done: 0.0024261474609375 Reading random done: 0.0036718845367432 Writing sequentiel done: 0.0085330009460449 Writing random done: 0.00011301040649414 Adding done: 0.0071640014648438 Reading/writing random done: 0.006505012512207 All tests done Извиняюсь за narod.ru, но на другие места просто времение нет. Вот ссылка:LibaForPROme v1.0 Еще пару лет Это сообщение отредактировал(а) Sardar - 24.1.2004, 01:07 -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
ElectricalStorm не факт.
1. Кто сказал, что все числа по одной цифре? 2. Нужно учесть перевод строки - два символа \r\n Sardar 500 постов - не горантируют, что тебя примут... |
|||
|
||||
| PROme |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 23.7.2003 Где: Kiev Репутация: -1 Всего: 1 |
Sardar спасибо огромное!!!
Там, конечно, такого наворотил... пока будет работать мой вариант... пока в твоем буду разбираться ЗЫ: вот это топик... на Винграде у меня такого еще небыло... -------------------- SEO-мастер |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Офтоп:
PROme действительно, редко когда у меня за 1 страницу(40 постов) переваливает |
|||
|
||||
| Raptus Melanholicus |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 6.1.2004 Где: Kiev::Ua Репутация: нет Всего: нет |
PROme Так ты не хочешь использовать БД только из-за того, что не знаешь, как там бекапятся данные?
Это сообщение отредактировал(а) Raptus Melanholicus - 24.1.2004, 12:55 |
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: нет Всего: 9 |
Secandr - это же только пример к томуже плохой но если маленько подумать то из его него можно сделать рабочий !
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| Sardar |
|
||||||||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
ИМXО не стоит, т.к. ты грузишь файл целиком, а значит когда файл разрастется скрипт(а может и сервер
Главное не флеймим Дока к класу на скорую руку. Класс представляет файл в виде таблицы:
Метод open() открывает файл с данными, если ранее был открыт другой файл, то он его закрывает. В аргументах ты указываешь: имя_файла, длинна_одного_элемента_в_байтах(3 по умолчанию), кол-во_элементов_в_строке(2 по умолчанию). Возрвратит true при успешном выполнении. alive() показывает открыт ли файл. close() закрывает текущий файл. flush() - принудительно скидывает данные на диск, по идее не используется. Методы работы с файлом: countLines() возвращает количество строк в файле. read(индекс_строки) - возвращает массив с содержимыми полей заданной строки. write(индекс_строки,...) - изменяет содержимое полей в строке. Есть два способа использования: 1) write($index, $coumn1, $column2,...,$columnN) 2) write($index, array($column1, $column2,...,$columnN)) Если переданное поле равно null то берется старое значние: write(5, null, "hoi") - в 6 строке изменится второе поле, первое без изменений. Если надо добавить строку в файл, то указываешь в write() верхний_индкекс+1: write(countLines(),array(7,90)). Все методы кроме write() и read() при ошибках выкидывют Warning'и. write() кидает warning если ты неправильно используешь класс, например при открытии ты указал, что в строке 3 элемента, а при работе даешь только 2. На ошибки чтения/записи предупреждений нет, т.к. не люблю сотни строк warning'ов из циклов, но ты можешь проверять возвращемое значение, true если все ОК. На разработку класса + теста с нуля ушло 4 часа, а на то что бы опубликовать 2 часа - только сейчас доходит как это гиморно найти хороший webspace ElectricalStorm
Perl
А вот аналог на PHP.
Есть разница между что-то делать и что-то делать хорошо учитывая исключения, удобство работы и т.д. Наверное потому получается програмный код больший чем несколько строк -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||||||||
|
|||||||||||||
| PROme |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 23.7.2003 Где: Kiev Репутация: -1 Всего: 1 |
В том то и дело - файл растет с 0, развивают его посетители... т.е. первые 1-2 месяца он вред ли привысит 1-2 метра...
А что такое соотношение есть или ты сам придумал? Я уже давно кликал ИМХО - важнее общий +, а не отношение
2 или 3 раза писал что так медленее выходит... а еще эта SQL-Injection - мало ли что там еще в ближайшее время найдет... ЗЫ: а если подскажешь, ради интереса и развития, с радостью изучу методики... -------------------- SEO-мастер |
||||||
|
|||||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
PROme У меня перл работает с логами весом 100-600Мб и ничего всё ОК. Время работы 30-40 сек. Запускается это всё по крону и парсится перлом, на базе полученых данных рисуется графики статистики.
Так что 1-2 Мб это нестрашно. P.S. Хотя перл шустрее работает. P.P.S. PROme Опиши проблему в разделе "БД", может старшие товарищи что посоветуют |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |