| Сказка о том, как подружить Java Script и PHPДавно я намеревался рассказать об одном из нестандартных вариантов решения проблемы связки JavaScript + PHP, хотя почему то именно сейчас ночью я спохватился это сделать! Может он покажется сегодня из разряда «можно по-другому», но приблизительно год назад при разработке одного музыкального портала это было быстро и красиво. «Тогда зачем я вещаю о старом и не нужном?» – вполне корректный вопрос – «потому что это и до сих пор быстро и красиво для простых информационных структур». Все, последний барьер предисловия был преодолен – теперь к делу. 
 Задача состоит в следующем:Требуется реализовать страницу загрузки *. mp3 (*. flac, *. wav и т. д. ) файлов на сервер, в формате – оформить альбом (обложка, битрейт, студия, описание, исполнитель ну и т.п.), выбрать у вас на компьютере загружаемые файлы и последнее нажать кнопку «Загрузить!», после чего радоваться тому, что вы нарушаете закон об авторском праве, если конечно не имеете нужных документов на владение и распространение (кстати, это очень важно). 
 Задача поставлена, начинаете писать какой-нибудь загрузчик на php, далее описываете форму с нужными полями под информацию об альбомах, создаете таблицу в базе, выделяете нужный каталог на сервере – все хорошо, ничего обычного. После чего я подвис на ночь, кому-нибудь это обязательно должно показаться знакомым. 
 Объяснения в студию! Мы изначально не знаем количества загружаемых файлов на сервер, потому что количество песен в альбомах ничем не ограничено, то есть является динамическим. Следовательно, форму я реализовал на JavaScript, то есть мы имеем, допустим, одно поле как стандартное и можем добавлять еще поля плюсиками и убирать минусами, как следствие теперь мы оперируем с динамическим количеством полей, что вполне нам подходит. Далее, по идее, нужно каждому файлу присвоить свой id, название, какую-то дополнительную информацию (mp3 теги не всегда могут иметься в наличие) 
 Кстати вот причина моего подвисания: Файлы то загрузятся на сервер, в этом как раз таки не проблема, а вот чтобы добавить информацию об этих файлах в нашу db, чтобы можно было их потом найти, требуется организовать цикл, организующий обращения к этой самой db. Фишка в том, что формы то генерированы жабой, а php – загрузчик и знать не знает, сколько их этих файлов. Вывод – цикл ничем не ограничен, а мы будем иметь или же огромную избыточность db в результате или же потерю файлов, при варианте, если ограничить цикл каким-нибудь числом оО (очень, очень глупо). 
 На тот момент я просерфил интернет пространство и ничего толкового не нашел, хотя задача была вполне очевидна и решабельна, только это был ступор. И если же ты, мой читатель, как раз таки в этом состоянии, то вот тебе решение – нужно вспомнить о самых что ни на есть основах PHP! Были, есть и будут есть такие суперглобальные массивы, которые содержат в себе информацию о состоянии сервера и среде выполнения скрипта. Я не буду рассказывать про назначение всех этих массивов, об этом можно прочитать, как обычно, на вики. Нам нужен массив $_FILES, как уже догадались, это ассоциативный массив, который хранит в себе информацию об отправленных на сервер файлах методом POST, именно из него мы обработчиком перетаскиваем файлы в каталог на сервере по средствам зарезервированной функции move_uploaded_file();. Так что решение тут было уже очевидным – посчитать количество элементов в этом массиве, после чего уже ограниченным циклом по порядку записать все в базу, примерно так: 
 
 /*использовать в таком виде не рекомендую, потому что это далеко не все, что требуется, а только основное для наглядности*/ Вернутся Вам будет интересно:
 | |||||||||||||
 Публикации Публикации
 
 Итак, у вас имеется свой собственный форум, но его никто не посещает? Мы готовы помочь вам справиться с этой нелегкой проблемой.
 Итак, у вас имеется свой собственный форум, но его никто не посещает? Мы готовы помочь вам справиться с этой нелегкой проблемой.
 Данная статья в основном рассчитана на тех, кто самостоятельно занимается продвижением своего проекта.
 Данная статья в основном рассчитана на тех, кто самостоятельно занимается продвижением своего проекта.
 Проклял все настройки кодировок, проклял DirectAdmin и еле-еле нашел то место где располагается и задается общий пароль для ...
 Проклял все настройки кодировок, проклял DirectAdmin и еле-еле нашел то место где располагается и задается общий пароль для ...
 Твиттер уже давно стал из нового web 2. 0 сервиса рекламной площадкой с огромным количеством потенциальных пользователей ...
 Твиттер уже давно стал из нового web 2. 0 сервиса рекламной площадкой с огромным количеством потенциальных пользователей ...
 Самое время кратко описать, чем нам придется заниматься. Прежде всего нужно понять, что блог ты будешь делать для получения ...
 Самое время кратко описать, чем нам придется заниматься. Прежде всего нужно понять, что блог ты будешь делать для получения ...
 Долго не знал с чего начать данную статью. Статья что-то типа мыслей вслух и философии.
 Долго не знал с чего начать данную статью. Статья что-то типа мыслей вслух и философии.


 
 
			 Новости
 Новости На первой картинке обозначены команды, при помощи которых через SMS Вы сможете кого-либо зафолловить или же отписаться, ретвитнуть чей-либо пост или же написать личное сообщение.
 На первой картинке обозначены команды, при помощи которых через SMS Вы сможете кого-либо зафолловить или же отписаться, ретвитнуть чей-либо пост или же написать личное сообщение. Разбираясь с Facebook API, случайно наткнулся на другую интересную разработку от этих людей.
 Разбираясь с Facebook API, случайно наткнулся на другую интересную разработку от этих людей. Не считая очевидных решений типа отключения некоторых плагинов и перехода на тему попроще, я вижу 2 пути для оптимизации: кэширование и сжатие траффика.
 Не считая очевидных решений типа отключения некоторых плагинов и перехода на тему попроще, я вижу 2 пути для оптимизации: кэширование и сжатие траффика. Часы
 Часы Поиск
 Поиск



