Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как правильнее делать поиск по файлу с содержимым
 
 автор: OLi   (22.07.2011 в 02:41)   письмо автору
 
 

С таким содержимым:

vid-obekta|Вид объекта||text||0
naselennyy-punkt|Населенный пункт||select|Москва__NEWL__Киев__NEWL__Питер__NEWL__Мурманск__NEWL__Другое|0
tel|Тел||text||0


Нужно выбрать все города

  Ответить  
 
 автор: Киналь   (22.07.2011 в 11:04)   письмо автору
 
   для: OLi   (22.07.2011 в 02:41)
 

Это полностью содержимое файла или маленький типовой кусочек?
Формат записей не меняется?

  Ответить  
 
 автор: OLi   (22.07.2011 в 11:58)   письмо автору
 
   для: Киналь   (22.07.2011 в 11:04)
 

Это кусок содержимого, формат не меняется, могу добавляться только города (или другие записи)

  Ответить  
 
 автор: Киналь   (22.07.2011 в 15:30)   письмо автору
 
   для: OLi   (22.07.2011 в 11:58)
 

>могу добавляться только города (или другие записи)

Хм. Тогда приведите, пожалуйста, подряд несколько кусков, возможно более разнообразных. Чтобы было видно, как именно могут добавляться города, а особенно «другие записи». Только приводите в точности так, как в файле — чтобы было видно также, как куски отделяются друг от друга.
И ещё вопрос: файл большой? Точнее, каков максимальный ожидаемый его размер (в килобайтах)?

  Ответить  
 
 автор: SHAman   (22.07.2011 в 15:33)   письмо автору
 
   для: OLi   (22.07.2011 в 02:41)
 

В зависимости от задачи, я бы парсил файл по-разному. Если задача в один момент времени - только найти все города - я бы вообще их нафиг выносил в кэш после первого парсинга. Если задач для работы с этим файлом много - я бы парсил его весь в структуру данных.

В любом случае, парсинг будет состоять из следующих этапов:
1) найти строку, начинающуюся на naselennyy-punkt
2) разсплитить ее по |
3) взять 4 элемент
4) разсплитить его по __NEWL__
5) ...
6) PROFIT!

  Ответить  
 
 автор: Киналь   (22.07.2011 в 15:46)   письмо автору
 
   для: SHAman   (22.07.2011 в 15:33)
 

Вместо 2 и 3 можно обрезать строку, просто посчитав символы от начала и от конца. Но меня смущает уточнение автора про «другие данные». И неизвестен размер файла — может, там метров десять и надо вообще на БД переходить)

  Ответить  
 
 автор: Valick   (22.07.2011 в 16:04)   письмо автору
 
   для: Киналь   (22.07.2011 в 15:46)
 

на БД переходить надо в любом случае там где есть поиск
и если вся эта затея с доставанием городов не процесс перехода на БД, то легче застрелиться

  Ответить  
 
 автор: Саня   (22.07.2011 в 16:20)   письмо автору
 
   для: Valick   (22.07.2011 в 16:04)
 

Применение СУБД не всегда оправдано. Вдруг, ТС делает программу для сервера с ограниченными возможностями, где установка сервера СУБД является нереальной задачей. Или памяти не хватает для поддержки СУБД. Или, или, или... слишком много "или" возникает при внедрении СУБД. Так же возможен вариант, когда производительность специализированного решения выше, чем предоставляют СУБД общего назначения. Прежде чем писать "на БД переходить надо в любом случае там где есть поиск" стоит удостовериться в том, что это будет более выгодным решением, чем специализированное решение.

  Ответить  
 
 автор: Valick   (22.07.2011 в 16:30)   письмо автору
 
   для: Саня   (22.07.2011 в 16:20)
 

Так же возможен вариант, когда производительность специализированного решения выше, чем предоставляют СУБД общего назначения.
речь о РНР не забывайте, сможете сделать поиск на РНР быстрее чем поиск по БД... сильно сомневаюсь...
Или, или, или... слишком много "или"
ни одного из "или" ТС не привел
___
а вот грамотная работа с файлами (с учетом нужных блокировок) это реальный гемор и это факт

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования