![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Вот собственно я решил что надоб написать класс который позволял бы работать с файлами как с базами данных - то есть что бы можно было добавлять изменять, ну и желательно что бы этот класс можно было применить в любом деле, допустим: хочу гостевую сделать без бд - пожалуйста, формат хранения такойто, и вовод тоже, захотел новости - пожалуйста записываем через класс и получаем массив из него же .... думаю я понятно мысль свою обяснил ? Нет ? Да?
Я начну (чуть позже) а вы там пока подумайте --- да, и, чуть было не забыл: все с обильными вразумительными комментариями --- Это сообщение отредактировал(а) Iz@top - 17.4.2003, 08:58 -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Значит так: вот кое что что я тут надумал ... Вы тож тама не спите !
Это сообщение отредактировал(а) Iz@top - 17.4.2003, 12:48 -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
ЭЭЭ, народ, Вы тама как ? Уснули что ли ?((((((
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| arial |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 772 Регистрация: 11.3.2003 Где: Архангельская обл . Репутация: 6 Всего: 7 |
Iz@top, вот я для новостей и гостевухи заготовил небольшой класс, он близок к твоей теме.
Он предназначен для того, чтобы строки в прочитанном в массив файле разбить на составляющие. По порядку. У меня файл вида: 1|arial|data 2|iz@top|data ... N|XXX|data Читаем его в массив функцией file() Получаем : array[0]="1|arial|data" array[1]="2|iz@top|data" и т.д. Так вот этот маленький простенький класс призван разбить каждый элемент этого массива на подэлементы, короче сделать двухмерный массив.
У меня работает прекрасно. Хоть под новости, хоть под гостевуху. А по поводу записи новых строк в файл, я за запись в конец файла "a". Я раз я обжогся. Алгоритм у одного умника взял (типа читаем файл в переменную, очищаем файл, записываем новое значение в начало файла, дописываем старые сообщения из переменной после нового сообщения), вся гостевуха улетела, сколько смог восстановил из бакапа, а код переделал по своему. Пишу всегда в конец файла, а когда читаю, переворачиваю массив array_reverse () и новые сообщения оказываются в верху. Больше меня волнует вопрос, как править отдельные строки, или удалять их. Сдесь не обойтись без того, чтобы не читать весь файл в массив, а потом работать с ним. И если какой то сбой во время записи массива обратно в файл то ... Здесь мне в голову пришла кой какая идея, но я ее еще не развивал: Надо иметь два файла с одинаковым содержимым (главный и резервный). Когда мы произвели какие то действия над главным файлом и операция прошла успешно, содержимое главного файла копируется в резервный. Если же произошла какая то ошибка в процессе записи в главный файл, резервный файл копирует свое содиржимое в главный. Появляется хоть какая то защита данных от безвозвратной утраты. Но как эту проверку сделать (нормально или нет прошла перезапись файла) надо думать. p.s. Iz@top, ты прав, что то тихо как на форуме... -------------------- Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская) |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
раздел PHP на форуме еще не так популярен, как остальные, но совместными усилиями мы добъемся его популярности! |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Все, додумался я как сделать:
Если чего кому не понятно - спрашивайте, а я пока подумаю над сохранением в базе данных ... -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
То есть тут не зависимо от формата записи (будь то date|name|email|message|ip|icq|aol|yahoo|status или date|news|author) будет происходить загрузка каждого значения, надо только знать в какой последовательности все это хранится в $db ...
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| arial |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 772 Регистрация: 11.3.2003 Где: Архангельская обл . Репутация: 6 Всего: 7 |
Вот этот кусок:
предлагаю сделать элегантнее:
А вообще меня волнует вопрос, а если эта база вырастет до больших размеров (больше 5Мб), как она ворочатся будет? -------------------- Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская) |
||||
|
|||||
| IZ@TOP |
|
||||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Боюсь мой друг что проблема в том что цикл while работает быстрее чем for ... но если хочеш можеш проверить что быстрее, если тебя не затруднит, просто я щас на работе, а здесь у меня апача с рнр не стоит ...
И это тоже можно проверить опытным путем .... -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
| Mark.dll |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 28.2.2003 Где: Эстония, Нарва Репутация: нет Всего: нет |
Создавайте новую файл с базой, если filesize >= 5mb
--------------------
"I wish I could change the world..." |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Если подгружать файл целиком то есть возможность потери данныx
Лучше всего соxранять данные в отдельном файле, а затем пользоватся смещениями, xранимыми в другом файле для доступа к данным. Удаляя данные ты удаляешь ссылку на ниx. Если нечаянно удалить сообщение то его можно всегда востановить. Изменяя данные ты просто запишешь иx в конец файла данныx подредактировав ссылку. Такая организация физически устойчива к ошибкам. Правда, время от времени придется дефрагментировать файл данныx Завтра пришлю сюда пример-класс читающий записи гостевой книги. Если руки не кривые то допустить какую либо ошибку не возможно -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| IZ@TOP |
|
||||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Зачем в конец ? Можно сразу туда куда надо:
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
| arial |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 772 Регистрация: 11.3.2003 Где: Архангельская обл . Репутация: 6 Всего: 7 |
Да... Согласен. -------------------- Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская) |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Елки что делаем
Если подгрузить весь файл и затем записать его, то можешь быть одним из счастливчиков кого обломали на самом интересном месте. Все данные будут утеряны.
Вот что я имел в виду: -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Класс писал для гостевой, но в принципе он подойдет (с небольшими переделками) для любой задачи. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]()
|
| Правила форума "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. |