Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
- Учебник по PHP (2004).pdf
Скачиваний:
132
Добавлен:
12.04.2015
Размер:
2 Мб
Скачать
☆

Если указан необязательный аргумент lcg со значением true, к концу идентификатора будет добавляться "комбинированный хеш энтропии LCG", делающий его значение более уникальным.

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

// без случайной части $token = md5(uniqid("")); // посложнее

$better_token = md5(uniqid(rnad()));

Эти строки генерируют 32 байта (128-битное шестнадцатеричное число): они обладают максимальной унакальностью, которая только может потребоваться.

Почтовые функции

mail

Отсылает почту.

Синтаксис : mail($to, $subject, $msg [,$headers]);

Функция mail() посылает сообщение с телом $msg (это может быть "многострочная строка", т.е. переменная, содержащая несколько строк, разделенных символом перевода строки) по адресу $to. Можно задать сразу несколько получателей, разделив их адреса пробелами в параметре $to.

Пример :

mail("spravka_web@chat.ru spravka_web@hut.ru", "Мое сообщение",

"Первая строка\nВторая строка\nТретья строка"

);

В случае, если указан четвертый параметр, переданная в нем строка вставляется между концом стандартных почтовых заголовков (таких как To, Content-type и т.д.) и началом текста письма. Обычно этот параметр используется для задания дополнительных заголовков письма.

Пример :

mail("spravka_web@chat.ru spravka_web@hut.ru", "Тема", "Тело письма",

"From: webmaster@chat.ru\n". "Reply-To: webmaster@chat.ru\n". "X-Mailer: PHP/" . phpvarsion()

);

Функции запуска программ

escapeshellcmd

Убирает shell метасимволы.

Синтаксис :

string escapeshellcmd(string command);

Убирает любые символы в строке, которые могут быть использованы в командном интерпретаторе как произвольные команды. Эту функцию нужно использовать, что бы убедится, что все ваши данные введены правильно, и эту функцию лучше всего вставлять в функции exec() или system(). Стандартное использование этой

функции выглядит так: system(EscapeShellCmd($cmd))

exec

Запуск внешней программы.

Синтаксис :

string exec(string command [, string array [, int return_var]]);

Функция exec() скрыто от пользователя запускает программу из строки command, весь стандартный вывод отключен. Возвращает последнюю строку результата выполнения программы.

Если параметр array установлен, то указанный массив будет заполнен выводом из программы. Помните, если массив уже содержит данные, то exec() добавляет свои данные в конец массива. Для очистки массива можно использовать функцию unset().

Если параметр return_var установлен наряду с параметром array, то в него записывается результат выполнения команды.

<?php

$se = "dir c:\\";

$s0 = exec($se, $sa, $sr);

echo "При запуске команды "$se" последняя выведенная строка была:\n", $s0,"\n Код возврата ($sr) \nА это все что было выведено: ";

print_r($sa); ?>

Если требуется запустить программу в фоновом режиме (на длительное время), то поток ее вывода должен быть перенаправлен в файл (или иной поток вывода); иначе по истечении допустимого времени исполнения сценария (ожидания завершения внешней программы) он будет принудительно завершен с ошибкой.

system

Запуск внешней программы с выводом результата.

Синтаксис :

string system(string command, int [return_var]);

это функция для запуска command и вывода результата. Если используется второй параметр, то в него записывается результат выполнения команды. Вызов System() также пробует автоматически вставить в буфер вывода web сервера после каждой строки вывода, если PHP запущен как модель сервера.

passthru

Запускает внешнюю программу и выводит данные напрямую.

Синтаксис :

string passthru(string command [, int return_var]);

Функция passthru() похожа на функцию exec() для запуска command. Если параметр return_var установлен, то результат Unix команды помещается здесь. Эта функция должна использоваться вместо exec() или system() тогда, когда вывод из Unix команды является двоичными данными, которые должны быть переданы непосредственно обратно в окно просмотра(browser). Это можно использовать, например, для запуска утилиты pbmplus для вывода непосредственно потока изображения. Установка типа image/gif и вызов программы pbmplus, чтобы вывести gif-рисунок, вы можете создавать PHP скрипты, которые выводят изображения непосредственно.

Функции динамической загрузки

dl

Загрузка библиотеки расширения PHP во время выполнения.

Синтаксис :

int dl(string library);

dl("extensions/php_db.dll");

Загружает PHP расширение определенное в library.

get_loaded_extensions

Определения перечня загруженных модулей.

Синтаксис :

array get_loaded_extensions(void);

Возвращает массив, содержащий список имен модулей PHP, которые были прокомпилированны, загружены при старте PHP и загружены во время исполнения функцией dl().

print_r (get_loaded_extensions());

Выводит информацию, подобную следующей:

Array

(

[0]=> standard

[1]=> bcmath

[2]=> calendar

[3]=> ctype

[4]=> com

[5]=> ftp

[6]=> mysql

[7]=> odbc

[8]=> overload

[9]=> pcre

[10]=> session

[11]=> tokenizer

[12]=> xml

[13]=> wddx

[14]=> zlib

[15]=> exif

[16]=> gd

[17]=> zip

)

extension_loaded

Проверка загрузки модуля.

Синтаксис :

bool extension_loaded(string name);

Возвращает true, если указанный модуль name уже был загружен. Следует обращать внимание на то, как пишется имя модуля, и на регистр символов.

get_extension_funcs

Определение функций модуля.

Синтаксис :

array get_extension_funcs(string module_name);

Возвращает массив, содержащий перечисление имен функций, содержащихся в модуле module_name. Этот модуль должен быть предварительно загружен.

print_r(get_extension_funcs("xml"));

Информационные функции

phpinfo

Выводит текущее состояние всех параметров PHP.

Синтаксис :

int phpinfo([int what])

Для сокращения объема выводимой информации можно указать один из следующих разделов what (если он не указывается, то подразумевается

INFO_ALL):

•INFO_GENERAL

•INFO_CREDITS

•INFO_CONFIGURATION

•INFO_MODULES

•INFO_ENVIRONMENT

•INFO_VARIABLES

•INFO_LICENSE

•INFO_ALL

Эта функция,которая в общем-то не должна появляться в законченной программе, выводит в броузер большое количество различной информации, касающейся настроек PHP и параметров вызова сценария. Именно, в стандартный выходной поток (то есть в браузер пользователя) печатается:

•версия PHP;

•опции, которые были установлены при компиляции PHP;

•информация о дополнительных модулях;

•переменные окружения, в том числе и установленные сервером при получении запроса от пользователя на вызов сценария;

•версия операционной системы;

•состояние основных и локальных настроек интерпретатора;

•HTTP-заголовки;

•лицензия PHP.

Функция phpinfo() в основном применяется при первоначальной установке PHP для проверки его работоспособности (уж больно много она выдает информации). Проверить работу этой функции можно нажав эту ссылку.

phpversion

Возвращает текущую версию PHP.

Синтаксис : string phpversion();

Возвращает строку, содержащую название версии интерпретатора PHP.

echo phpversion();

Вот что примерно должно получиться:

4.3.6

phpcredits

HTML-распечатка разработчиков PHP.

Синтаксис :

void phpcredits(inf flag);

Выводит информацию о создателях и их вкладе в разработку пакета PHP.

phpcredits(CREDITS_GENERAL);

Флаги можно комбинировать следующим образом:

phpcredits(CREDITS_GROUP + CREDITS_DOCS + CREDITS_FULLPAGE);

Далее приведу список доступных флагов:

•CREDITS_ALL - Полный HTML-листинг.

•CREDITS_DOCS - Список разработчиков документации.

•CREDITS_FULLPAGE - Обычно используется в комбинации с другими флагами. Выбирает вариант, подготовленный к распечатке.

•CREDITS_GENERAL - Общая разработка языка PHP 4.0 и SAPI

•CREDITS_GROUP - Список разработчиков ядра.

•CREDITS_MODULES - Список модулей расширения и их авторов.

•CREDITS_SAPI - Список разработчиков PHP модуля API сервера.

php_sapi_name

Получение типа интерфейса между Web-сервером и PHP.

Синтаксис :

string php_sapi_name();

Возвращает строку, содержащую строчными буквами тип интерфейса. Для CGI PHP, это будет строка "cgi", для mod_php под Apache - "apache" и т.п.

$sapi_type = php_sapi_name(); if($sapi_type == "cgi")

echo "Это CGI PHP\n"; else

echo "Это не CGI PHP а $sapi_type";

Вот что получиться для нашего случая:

Это не CGI PHP а cgi-fcgi

php_uname

Определение операционной системы.

Синтаксис : string php_uname();

Возвращает строку, содержащую название операционной системы, например

"Windows NT MYCOMP 5.1 build 2600".

if(substr(php_uname(),0,7) != "Windows") {

die("Этот сценарий должен выполняться в Windows.");

}

ini_set

Изменение параметра конфигурации.

Синтаксис :

string ini_set(string varname, string newvalue);

Устанавливает для указанного параметра varname значение newvalue. При успехе возвращает прежнее значение, при ошибке - false.

ini_alter

Тоже, что и ini_set().

Синтаксис :

string ini_alter(string varname, string newvalue);

ini_get

Эта функция получает значения параметров конфигурации.

Синтаксис :

string ini_get(string varname);

Возвращает текущее значение парамерта конфигурации, заданное в переменной varname.

Данная функция позволяет получить все доступные в PHP парамеры. В случае ошибки возвращает false.

ini_restore

Производит восстановление парамерта конфигурации.

Синтаксис :

string ini_restore(string varname);

Устанавливает значение параметра конфигурации varname в первоначальное.

echo ini_set("precision",20).ini_get("precision"). ini_restore("precision").ini_get("precision");

// Выведет 14 20 14

get_cfg_var

Получает значения параметра непосредственно из файла php.ini.

Синтаксис :

string get_cfg_var(string varname);

Надо отметить, что в отличии от функции ini_get(), которая возвращает текущее значение параметра, функция get_cfg_var() возвращает значение параметра, которое установлено в файле конфигурации php.ini. Также эта функция не возвращает другие параметры (например, из конфигурации самого сервера).

getenv

Функция возвращает значение переменной окружения.

Синтаксис :

string getenv(string varname);

$ip = getenv("REMOTE_ADDR"); echo "Ваш IP-адрес: $ip";

Вот что получиться в результате работы:

Ваш IP-адрес: 127.0.0.1

Список переменных окружения можно посмотреть в Приложения->Переменные окружения, или при помощи функции phpinfo().

Эта функция не работает в модуле PHP ISAPI.

putenv

Устанавливает переменную окружения.

Синтаксис :

void putenv(string setting);