Директивы для конфигурирования PHP можно размещать
не только в файле php.ini, но также и в конфигурационных файлах Apache
– httpd.conf и .htaccess. Это позволяет проводить тонкую настройку php
для разных директорий и виртуальных хостов.
Откуда знает MP3-Player, например Winamp информацию
об исполнителе или названии композиции, которую он проигрывает? Может
быть, он сам каким-то чудным образом узнает название песни и альбома?
Нет, здесь нет никакого волшебства! Подобная информация содержится в
самих файлах. Музыкальные файлы других форматов таких как WMA или Ogg
Vorbis также содержат подобную информацию, но здесь речь пойдет о
файлах в формате mp3.
Классические СУБД, такие как MySQL (а так же MS SQL,
Oracle, PostgreeSQL) состоят из отдельного сервера, поддерживающего
работу базы данных и прослушивающих определённый порт, на предмет
обращения клиентов. В качестве клиента может выступать в том числе и
расширение PHP, реализующего интерфейс, с помощью которого
осуществляются запросы к базе. Движок SQLite и интерфейс к ней
реализованы в одной библиотеке, что увеличивает скорость выполнения
запросов. Такой сервер часто называют встроенным.
Рассмотрим пример построения дерева иерархии (в развернутом виде) на
основе информации из базы данных с помощью PHP и MySQL. Ключ к решению
данной задачи - использование рекурсивной функции. Иерархия разделов
будет храниться в таблице базы данных MySQL.
База данных с точки зрения MySQL (и некоторых других СУБД) - это
обыкновенный каталог, содержащий двоичные файлы определенного формата -
таблицы. Таблицы состоят из записей, а записи, в свою очередь, состоят
из полей. Поле имеет два атрибута - имя и тип.
Тип поля может быть:
Целым;
Вещественным;
Строковым;
Бинарным;
Дата и время;
Перечисления и множества.
Возможные типы данных, диапазоны и описания представлены в последующих таблицах: