Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
orm> 
При приеме данных такой формы PHP "запутается" и, хотя и создаст массив $File, 
но не поместит в него никаких полезных данных. А именно, в моей версии 4.0.3pl1 
в 
элемент с ключом a вместо имени файла попадает какое-то комплексное (судя по 
его 
странному виду) число.) Надеюсь, в будущих версиях интерпретатора это досадное 
недоразумение будет исправлено. 
Но все же существует метод, с помощью которого мы сможем обработать и такие 
"неправильные" с точки зрения PHP формы. Я об этом еще не упоминал, но PHP, по- 

мимо установки вышеперечисленных переменных, создает также глобальный массив 
с именем $HTTP_POST_FILES. Как показывает практика, в этом массиве содержатся 
верные данные, какое бы имя не имело поле закачки в форме. 
Массив $HTTP_POST_FILES создается не всегда, а только в том случае, если 
в настройках PHP задействован параметр track_vars. Так как, судя по доку- 
ментации, в PHP версии 4 он включен всегда (чего нельзя сказать о третьей 
версии), то беспокоиться не о чем. 
Массив $HTTP_POST_FILES используется довольно редко, так что я предоставляю 
читателю возможность самостоятельно разобраться, в каком формате хранятся в нем 

данные. Это несложно. Вам не потребуется ничего, кроме функции Dump(), которая 
уже упоминалась в этой главе, и, конечно, желания экспериментировать. 

Глава 29 
Модульность программы. 
Написание "библиотекаря" 
Во всех серьезных языках программирования имеется возможность писать модуль- 
ные программы. Иными словами, при определенных навыках вы можете разбить 
свою программу на относительно независимые части, каждую из которых реализо- 
вать в виде модуля. Особенно это бывает полезно, если над программой работает 
сра- 
зу коллектив разработчиков (как чаще всего и бывает) — в этом случае остается 
лишь продумать связи между модулями, написание которых можно поручить разным 
программистам. 
Модули обычно также используют другие модули в своей работе, те — третьи, и т. 
д., 
до самого низкого уровня. Хорошо написанный модуль подобен новому автомобилю: 
его интерфейсные функции — это аналог руля и педаль, а уж что там под капотом — 

программиста, подключающего модуль, волновать не должно. 
Тем не менее, должен вас огорчить: к сожалению, разработчики PHP не 
предусмотре- 
ли в языке сколько-нибудь удобной поддержки модульности. Однако не впадайте в 
уныние: дело в том, что такую поддержку можно в язык добавить, причем относи- 
тельно несложными приемами самого PHP и сравнительно небольшими затратами с 
точки зрения быстродействия. Этим мы и займемся в настоящей главе. 
Наши требования 
Возможно, вы возразите: "Как же нет никакой поддержки модульности? 
А инструкция include?" Да, разумеется, уж лучше использовать include, вместо 
того чтобы хранить всю программу в одном-единственном файле. Но дело в том, что 

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

министратор при установке PHP. У многих хостинг-провайдеров мы не можем изме- 
нять по своему усмотрению эти каталоги, а указание относительных путей 
(например, 
../../php/somefile.php) оказывается довольно проблематичным (представьте 
только, сколько всего нам придется изменять, если мы захотим расположить нашу 
программу в другом месте). 

Часть V. Приемы программирования на PHP 
398 
Возможно, этот разговор о каталогах выглядит с первого взгляда несколько 
надуманно, однако люди, уже столкнувшиеся когда-либо с рас
 
<<-[Весь Текст]
Страница: из 287
 <<-