- •Тема 1 Основы cgi-программирования
- •1.1 Методы передачи данных
- •1.2 Передача документа пользователю
- •1.3 Передача информации cgi-сценарию
- •Тема 2 Характеристика языка php
- •2.1 Принцип работы php
- •2.2 Переменные, константы, выражения
- •Тема 3 Работа с данными формы
- •3.1 Передача данных
- •3.2 Трансляция полей формы в переменные
- •Тема 4 Конструкции языка
- •4.1 Условные инструкции
- •4.2 Инструкции циклов
- •4.3 Инструкции включения
- •Тема 5 Ассоциативные массивы
- •5.1 Списки и ассоциативные массивы
- •5.2 Операции над массивами
- •5.3 Списки и строки
- •5.4 Сериализация
- •Тема 6 Работа с массивами
- •6.1 Сортировка массивов
- •6.2 Функции для работы с массивами
- •Тема 7 Функции и области видимости
- •7.1 Формат определения функции, передача параметров
- •7.2 Глобальные, локальные, статические переменные
- •7.3 Рекурсия, вложенные и условно-определяемые функции
- •7.4 Передача функций по ссылке и возврат функцией ссылки
- •Тема 8 Строковые функции
- •8.1 Функции работы со строками
- •8.2 Работа с блоками текста
- •Тема 9 Математические функции
- •9.1 Встроенные константы
- •9.2 Встроенные функции
- •Тема 10 Работа с файлами и каталогами,
- •10.1 Функции работы с файлами
- •10.2 Блокирование файла
- •10.3 Функции работы с каталогами
- •10.4 Запуск внешних программ
- •Тема 11 Работа с датами и временем,
- •11.1 Представление времени в формате timestamp
- •11.2 Работа с датами, григорианский календарь
- •11.3 Посылка писем через php
- •Тема 12 Работа с www
- •12.1 Установка заголовков ответа
- •12.2 Работа с Cookies
- •Тема 13 Управление интерпретатором
- •13.1 Управление интерпретатором
- •13.2 Управление сессиями
- •Тема 14 Работа с базой данных mysql
- •14.1 Соединение с базой данных
- •14.2 Выполнение запросов к базе данных
- •Тема 15 Загрузка файлов на сервер
- •15.1 Multipart-формы, тег выбора файла
- •15.2 Поддержка закачки в php
- •Учебное издание
- •Разработка программного обеспечения на платформе net: php.Net
- •246019 Г. Гомель, ул. Советская, 104
10.4 Запуск внешних программ
string system(string $command
[,int& return_var])
Функция запускает внешнюю программу, имя которой передано первым параметром, и выводит результат работы программы в выходной поток, т. е. в браузер. Если функции передан также второй параметр – переменная (именно переменная, а не константа!), то в нее помещается код возврата вызванного процесса. Это требует от PHP ожидания завершения запущенной программы. Выходной поток данных программы направляется в браузер. Если нужно этого избежать, воспользуйтесь функциями popen() или exec(). Если же вы, наоборот, нужно, чтобы выходные данные запущенной программы попали прямиком в браузер и никак при этом не исказились (например, вызывается программа, выводящая в стандартный выходной поток какой-нибудь GIF-рисунок), в этом случае в самый раз будет функция PassThru().
string exec(string $command [,list& $array] [,int& $return_var])
Функция запускает указанную программу или команду, но ничего не выводит в браузер. Вместо этого функция возвращает последнюю строку из выходного потока запущенной программы и, если задан параметр $array (который обязательно должен быть переменной), то он заполняется списком строк в выходном потоке – по одной строке на элемент. Если массив уже содержал какие-то данные перед вызовом exec(), новые строки просто добавляются в его конец, а не заменяют старое содержимое массива. При задании параметра-переменной $return_var код возврата запущенного процесса будет помещен в эту переменную. Функция exec() тоже дожидается окончания работы нового процесса и только потом возвращает управление в PHP-программу.
string EscapeShellCmd(string $command)
Нельзя допускать возможности передачи данных из браузера пользователя (например, из формы) в функции system() и exec(). Если это все же нужно сделать, то данные должны быть соответствующим способом обработаны: например, можно защитить все специальные символы обратными слэшами, и т. д. Это и делает функция EscapeShellCmd(). Чаще всего ее применяют в таком контексте:
system("cd ".EscapeShellCmd($to_directory));
Здесь переменная $to_directory пришла от пользователя – например, из формы или Cookies.
string PassThru(string $command
[,int& $return_var])
Функция запускает указанный в ее первом параметре процесс и весь его вывод направляет прямо в браузер пользователя, один-в-один. Она применяется, если воспользоваться какой-нибудь утилитой для генерации изображений «на лету», оформленной в виде отдельной программы.
Пример:
Header("Content-type: image/jpeg");
PassThru("cat my_image.jpg");
Функция Header() сообщает браузеру пользователя, что данные поступят в графическом формате JPEG, а последующий вызов утилиты cat с параметром – именем файла с рисунком – заставляет систему «распечатать» файл в браузер пользователя.
Тема 11 Работа с датами и временем,
посылка писем через PHP
11.1 Представление времени в формате timestamp
11.2 Работа с датами, григорианский календарь
11.3 Посылка писем через PHP
