|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Несколько вопросов по PHP |
|
Разное - Несколько вопросов по PHP
|
Старожил Сообщения: 361 |
Профиль | Отправить PM | Цитировать У меня возникли следующие вопросы, когдя я пытался разобраться...
1) Как индексировать содержимое папки? Есть большой фолдер (большой - это значит около 10к файлов схожего типа, дальше - больше). Какую структуру языка PHP лучше всего использовать для хранения информации об каждом файле с учётом максимально простого, быстрого и эффективного обращения к ним из другого PHP-файла (или flash-приложения). Массив не подходит, ибо одному элементу массива соответствует одно значение (а нужно хранить как минимум значения типа Ident, Vendor ID, Group и Link) Я читал про такой тип данных в PHP как ресурс, но, как я понял, он хранит только ссылки, и вообще это не тип данных, а процедуры обращения к тем же GZ2-файлам или MySQL DB... А как в PHP выглядит тип данных, идентичный типу record (запись) в Pascal/Delphi. Очень хорошо, если бы вы подсказали не только как он выглядит и декларируется в программе, но и как обращаться к элементам, записывать значения в элементы записи и и.п. 2) Вот есть у файлов в Св-вах вкладочка "Сводка". Там Vendor ID и ещё всякая ерунда обычно хранится. А как к этой штучке обращаться в PHP? Вот допустим из этой папки с файлами (10000+ файлов) PHP-файл должен найти файл, у которого в св-вах во вкладке "сводка" в поле "создатель" написано "FileVendor01", как будет выглядеть ответственная за поиск часть этого PHP-файла? 3) Что из себя представляют ASPX (ASP, Active Server Pages) файлы? Что есть ASP и зачем его используют? Имело бы смысл реализовывать то, что описано в вопросах выше, с помошью ASP? (хотя заглянув в Википедию я сам ответил на этот вопрос, ответ отрицательный) Где можно почитать литературу по ASP? ASP и ASP.NET - разные вещи? |
|
Отправлено: 17:25, 22-01-2009 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Как индексировать - прочитать сведения об одном файле -> внести информацию в базу данных (mysql) -> следующий файл -> внести информацию...
Для сбора всей информации о файле используется функция stat(filename). Вывод в массив (с помощью print_r($arr) можно посмотреть содержимое массива). Соответственно, поиск будет выполнять mysql. Делаем запрос вроде mysql_query("SELECT * FROM имя_таблицы WHERE filename='имя_файла.txt' "); или по другим полям. Будет гораздо быстрее и эффективнее, чем держать в памяти всю структуру в виде массива. Массив, кстати, подходит, просто многоуровневый надо сделать. А вообще, не надо доводить файловую систему до такого состояния. 10 тысяч файлов в 1 папке - это глупость. Создавайте каждый месяц / неделю / день новую папку и кладите файлы в неё. Это значительно снизит нагрузку на серверную ОС. ASP - язык программирования для веб от Microsoft. Используется с веб-сервером IIS. ASPX - откомпиленный ASP. ASP.net - дальнейшее развитие ASP. Язык представляет собой что-то вроде VisualBasic'а. Но PHP мне нравится больше Часть заданных вопросов я не понял, поэтому, возможно, ответил не на те, которые надо =^_^'= |
Отправлено: 17:45, 22-01-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать Оу. Спасибо.
Примерно понятно, попробую, что у меня из этого получится. Папочку в таком случае постараюсь раскидать по подпапкам, если от этого производительность возрастёт. Пока не слишком понятно по какому параметру раскидывать. Только заметил, что вы, Coutty, анимэшник ^_^ Я, кстати, тоже тех же взглядов. Анимэшники должны помогать друг другу, так что если что - я сразу же обращусь xD А какое ваше любимое анимэ? Простите, модератор- |
Отправлено: 19:33, 22-01-2009 | #3 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Цитата ManHack:
А потом при добавлении скрипт пусть следит - если в БД уже есть, скажем, 100 записей на эту папку (запрос типа "SELECT COUNT(*) FROM имя_таблицы WHERE имя_каталога = последнее_имя"), то создавать новую. "Последнее_имя" тоже надо где-то хранить, я думаю, либо делать кореллированный подзапрос, что не очень хорошо, как мне кажется. Производительность возрастёт - попробуйте через виндовый проводник открыть папку с кучей файлов и с малым количеством. Разница будет видна на глаз. Я всё мутно объясняю, но суть в том, что пути к файлам и свойства надо хранить в БД, а папки слишком большими не делать. По анимэ у нас спец.тема есть |
|
Отправлено: 19:43, 22-01-2009 | #4 |
Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать Цитата:
Файлы будут обрабатываться флеш-приложением, хотя над этим надо ещё хорошо подумать. А для каждой папки придётся сделать отдельную таблицу? Или можно в таблице как-то хранить не только ключи с их значениями, а ключ -> значение -> подзначение значения ? (3-уровня вложенности) Просто на виртуальном хостинге, который я хочу использовать по-началу, стоит ограничение 20 таблиц для пользователей free-аккуанта. Я пока не уверен, хватит ли мне этих 20. Или можно делать всё в одной таблице, а папки будут фигурировать только в полях 'link'? Кстати, сколько записей может выдержать таблица? А какое количество оптимально? Я имею ввиду в плане производительности в первую очередь. Под терминов 'кореллированный подзапрос' что понимается? |
||
Отправлено: 20:04, 22-01-2009 | #5 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Цитата ManHack:
Примерно такие поля в таблице (пусть будет main для примера): [ id | folder | filename | size | vendor | group | link ] Достаточно? Можно и ещё добавить. 3 уровня вложенности - "не понимать") Если выбирать по id, то такой код:
При добавлении:
Ну и не забываем сам файл в папку записать. Цитата ManHack:
Цитата ManHack:
|
|||
Отправлено: 20:34, 22-01-2009 | #6 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Цитата Coutty:
|
|
------- Отправлено: 01:13, 23-01-2009 | #7 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Простите, я думал, что это со времён обычных ASP пошло...
|
Отправлено: 06:44, 23-01-2009 | #8 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать ASP как и ASP.NET это набор серверных объектов, функций, директив, которые реализуются с помощью поддерживаемого языка. В ASP - это скриптовые JS и VB. В ASP.NET - это компилируемые языки (основные C# и VB.NET). Существует и версия PHP для ASP.NET http://php-compiler.net/ - вроде бы независимые разработчики....
|
Отправлено: 07:36, 23-01-2009 | #9 |
Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать А как выполнять поиск по MySQL DB?
Ну допустим PHP-файл даёт юзеру формочку для поиска, в которую юзер что-то пишет, а скрипт ищет в БД. Причём ищет сразу по нескольким таблицам БД (т.е. мы не знаем про что имеено юзер спрашивает, поэтому перебираем все возможные сочетания заданных юзером в форму слов во всех таблицах). Как сделать такой поиск, обязательно разумным. И как сделать, чтобы обращение к PHP-файлу поиска происходило из другого PHP-файла ("главная страница"), который передаёт пользовательский запрос файлу поиска и забирает результаты, чтобы их вывести (т.е. скрипт поиска освобождён от необходимости оформлять свои результаты на экране). |
Отправлено: 17:26, 28-01-2009 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - PHP - несколько вопросов | ManHack | Программирование и базы данных | 38 | 26-08-2009 18:15 | |
Несколько вопросов по ОС | Master WEB | Общий по Linux | 33 | 02-08-2007 23:23 | |
Несколько вопросов | raingts | Хочу все знать | 2 | 30-01-2007 18:05 | |
Несколько вопросов | barbos | Общий по Linux | 8 | 16-12-2004 20:40 | |
Несколько вопросов по RH 9 | Frost Wolf | Общий по Linux | 12 | 07-09-2003 12:51 |
|