- •Содержание:
- •Математические функции : Функции округления
- •Математические функции : Случайные числа
- •Математические функции : Минимум и максимум
- •Математические функции : Степенные функции
- •Математические функции : Тригонометрия
- •Математические функции : Функции повышенной точности BCMath
- •Математические функции : Функции GMP. Арифметика
- •Математические функции : Функции GMP. Математика
- •Математические функции : Функции GMP
- •Математические функции : Функции GMP. Значения функции GMP
- •Математические функции : Функции GMP. Бинарные операции
- •Работа с массивами : Создание массива
- •Работа с массивами : Сортировка массивов
- •Работа с массивами : Курсор массива
- •Работа с массивами : Ключи и значения
- •Работа с массивами : Комплексная замена в строке
- •Работа с массивами : Работа с несколькими массивами
- •Работа с массивами : Получение и удаление части массива
- •Работа с массивами : Вставка/удаление элементов
- •Работа с массивами : Переменные и массивы
- •Строковые функции : Функции отрезания пробелов
- •Строковые функции : Поиск в тексте
- •Строковые функции : Функции сравнения
- •Строковые функции : Форматирование и вывод строк
- •Строковые функции : Составление/разбиение строк
- •Строковые функции : Работа с блоками текста
- •Строковые функции : Функции для преобразования символов
- •Строковые функции : Функции изменения регистра
- •Строковые функции : Установка локали (локальных настроек)
- •Строковые функции : Преобразование кодировок
- •Строковые функции : Функции форматных преобразований
- •Строковые функции : Функции URL
- •Строковые функции : Работа с бинарными данными
- •Строковые функции : Строковые суммы и хеш-функции
- •Символические ссылки. Жесткие ссылки
- •Функции даты и времени
- •Логические функции определения типа переменной
- •Функции переменных
- •Функции для работы с функциями
- •Календарные функции
- •Работа с файлами : Открытие файла
- •Работа с файлами : Закрытие файла
- •Работа с файлами : Чтение и запись
- •Работа с файлами : Положение указателя текущей позиции
- •Работа с файлами : Функции для определения типов файлов
- •Работа с файлами : Определение параметров файла
- •Работа с файлами : Функции для работы с именами файлов
- •Работа с файлами : Функции манипулирования целыми файлами
- •Работа с файлами : Другие функции
- •Функции для работы с каталогами : Манипулирование каталогами
- •Функции для работы с каталогами : Работа с записями
- •FTP : Работа с FTP-сервером
- •FTP : Работа файлами
- •Функции IMAP
- •Функции SNMP
- •Функции Vmailmgr
- •Сетевые функции
- •Отслеживание и обработка ошибок : Введение
- •Отслеживание и обработка ошибок : Функции обработки ошибок
- •Управление сессиями : Имя группы сессии
- •Управление сессиями : Идентификатор сессии
- •Управление сессиями : Другие функции
- •Управление сессиями : Обзор обработчиков
- •Управление сессиями : Про сессии и Cookies
- •Работа с WWW : Установка заголовков ответа
- •Работа с WWW : Получение заголовков запроса
- •Работа с WWW : Работа с Cookies
- •Работа с WWW : SSI и функция virtual()
- •Управление выводом : Введение
- •Управление выводом : Функции управления выводом
- •Управление исполнением сценария PHP : Дополнительные функции
- •Почтовые функции
- •Функции запуска программ
- •Функции динамической загрузки
- •Информационные функции
- •База данных MySQL : Работа с базами данных
- •Базы данных MySQL : Обработка результатов запроса
- •PDF-документы : Введение
- •PDF-документы : Открытие документа
- •PDF-документы : Работа с текстом
- •PDF-документы : Установка масштаба и системы координат
- •PDF-документы : Черчение и заполнение фигур
- •PDF-документы : Размещение рисунков
- •PDF-документы : Стиль документа
вместе с остальными заголовками. Все аргументы, кроме имени, необязательны. Если задан только параметр $name (имя Cookie), то Cookie с указанным именем у пользователя удаляется. Вы можете пропускать аргументы, которые не хотите задавать, пустыми строками "". Аргументы $expire и $secure не могут быть представлены строками, а потому вместо пустых строк здесь нужно использовать
0.
Параметр $expire задает timestamp, который, например, может быть сформирован функциями time() или mktime().
Параметр $secure говорит о том, что величина Cookie может передаваться только через безопасное HTTPS-соединение.
Примеры:
//Cookie на одну сессию, т.е. до закрытия браузера
SetCookie("TextCookie","value");
//Эти Cookies уничтожаются браузером через 1 час после установки
SetCookie("TextCookie",$val,time()+3600); SetCookie("TextCookie",$val,time()+3600,"/~rasmus/",".utoronto.ca",1);
После вызова SetCookie() только что созданный Cookie сразу появляется среди глобальных переменных как переменная с заданным в параметре $name именем. Она появиться и при следующем запуске сценария - даже если SetCookie() в нем и не будет вызвана.
Работа с WWW : SSI и функция virtual()
Немного теории
Для одного и того же документа в Apache нельзя применять два "обработчика". Иными словами, действует принцып: либо PHP, либо SSI. Однако в PHP имеются определенные средства для "эмуляцииquot; SSI-конструкции include virtual.
Конструкция include virtual загружает файл, URL которого указан у нее в параметрах, обрабатывает его нужным обработчиком и выводит в браузер. То ести все происходит так, будто указанный URL был затребован виртуальным браузером. Большинство SSI-файлов ограничиваются использованием этой возможности.
virtual
Имитация include virtual.
Синтаксис :
int virtual(string $url)
Функция virtual() представляет собой процедуру, которая может поддерживаться только в случае, если PHP установлен как модуль Apache. Она делает то же самое, что и SSI-инструкция <-- #include virtual=... -->. Иными словами, она генерирует новый запрос серверу, обрабатываемый им обычным образом, а затем выводит данные в стандартный поток вывода.
Чаше всего функция virtual() используется для запуска внешних CGI-сценариев, написанных на другом языке программирования, или же для обработки SSIфайлов более сложной структуры. В случае, если запускается сценарий, он должен генерировать правильные HTTP-заголовки, иначе будет выведено
сообщение об ошибке. Для включения обычных PHP-файлов с участками кода функция virtual() неприменима - это выполняет оператор include.
Управление выводом : Введение
Данная группа функций позволяет управлять тем, как PHP при выполнении сценария выводит информацию. Это может быть полезно в различных ситуациях, в особенности при посылке браузеру HTML-заголовков (headers) после того, как сценарий начал выводить HTML-текст. (В обычном случае невозможно послать заголовок после того, как был начат вывод текста.)
Эти функции не воздействуют на заголовки, посланные функциями header() или setcookie(), а только на функции, подобные echo() и HTML-тексту между блоками
PHP-кода.
<?php
ob_start(); echo "Hello\n"
setcookie("cookiename", "cookiedata");
ob_end_flush();
?>
В примере выше вывод командой echo() будет сохранен в буфере вывода до вызова функции ob_end_flush(). В то же время вызов setcookie() успешно сохраняет cookie, не вызывая ошибки.
Управление выводом : Функции управления выводом
ob_start
Включение буферизации вывода.
Синтаксис :
void ob_start([string output_callback])
После вызова этой функции включается буферизация вывода и, пока она активна, никакие из выводящихся данных не будут посланы браузеру, а будут сохраняться во внутреннем буфере PHP.
Содержимое буфера может быть скопировано в строковую переменную функцией ob_get_contents(). Для вывода содержимого из буфера используется функция ob_end_flush(). Удалить содержимое буфера позволяет функция ob_end_clean().
В аргументе output_callback можно указать функцию, которая будет автоматически вызываться при выводе содержимого буфера. Обычно это используется для модификации содержимого буфера перед выводом (например, сжатия). Тогда при вызове функции ob_end_flush() в указанную функцию будет передаваться содержимое буфера, а то, что она возвратит, будет выведено (заметьте, сама функция не должна ничего выводить).
Буферизация может быть вложенной, и тогда она обрабатывается соответственно вложенности; и содержимое, выводимое из буфера нижнего уровня, будет включаться в буфер верхнего уровня. Не забывайте, что для вывода всего буферизованного содержимого необходимо вызывать функцию ob_end_flush() столько же раз, сколько была вызвана ob_start().
<?php
function c($str) { // получает содержимое буфера return nl2br($str); // возвращает содержимое буфера
}
function d($str) { // получает содержимое буфера
return strtoupper($str); // возвращает содержимое буфера
}
?>
<?php ob_start("c"); ?>
Тут различный текст...
<?php
// преобразовывать текст длее в верхний регистр ob_start("d");
?>
еще что-то...
<?php ob_end_flush(); ?>
.......
<?php ob_end_flush(); ?>
ob_get_contents
Получение содержимого буфера вывода.
Синтаксис :
string ob_get_contents()
Если буферизация неактивна, возвращается false.
ob_get_length
Получение длины данных в буфере вывода.
Синтаксис :
string ob_get_length()
Если буферизация неактивна, возвращается false.
ob_end_flush
Вывод содержимого буфера.
Синтаксис :
void ob_end_flush(void)
После вывода буфер текущего уровня очищается, поэтому вызывайте функцию ob_get_contents() заранее, если необходимо получить его содержимое.
flush
Вывод всего содержимого буфера.
Синтаксис :
void flush(void);
Функция воздействует только на буферизацию PHP и не может контролировать схему буферизации web-сервера или браузера.
Некоторые серверы, в особенности под Win32, буферизируют выводящиеся сценарием данные до того, как сценарий завершится и данные будут отосланы браузеру.
Браузер, в свою очередь, также может буферизировать получаемые данные до их отображения. Netscape, например, буферизирует текст до получения символа завершения строки или открывающего тега, а для таблиц - до получения тега </table> таблицы верхнего уровня.
ob_end_clean
Очистка буфера.
Синтаксис :
void ob_end_clean(void);
Вызов функции отключает буферизацию на текущем уровне.
ob_implicit_flush
Установление режима буферизации.
Синтаксис :
void ob_implicit_flush([int flag]);
Если в аргументе указано ненулевое значение или оно не указано, то при осуществлении каждой операции вывода будет неявно вызыватся функция flush().
Надо отметить, что часто эта функция работает курьезно; например, если в конце сценария вызвать функцию ob_end_clean(), то сценарий не выведет ничего, если вывод из буфера не производился явно другими функциями.
Управление исполнением сценария PHP : Функции управления сценарием
set_time_limit
Установка предельного времени исполнения сценария.
Синтаксис :
void set_time_limit(int seconds)
При запуске сценария PHP запускает системный таймер, и если время (выделенное сценарию для выполнения) истекает, а сценарий еще не завершился, PHP принудительно завершает сценарий (генерируя фатальную ошибку исполнения). Это не допускпет скопления большого количества сценариев, расходующих ресурсы сервера, но, повидимому, "зависших" (например, если в них обнаружился бесконечный цикл или они пытаются дождаться подключения к неотвечающему серверу).
По умолчанию допустимое время исполнения сценария устанавливается в файле конфигурации параметром max_execution_time (обычно оно равно 30 с). Но для
текущего сценария это время можно изменить вызовом данной функции, указав время в секундах в ее аргументе. Если указывается значение 0, то тогда временное ограничение снимается.
Отсчет времени начинается от момента вызова функции. Например, если сценарий уже выполнялся в течении 15 секунд, а затем вызывается функция set_time_limit(20), то общее максимальное время исполнения сценария становится равным 35 секундам.
Если сценарий выполняется в безопасном режиме (с установленным параметром safe mode), то тогда вызов этой функции игнорируется и используется значение из файла конфигурации.
sleep
Задержка выполнения сценария.
Синтаксис :
void sleep(int seconds);
Фукция sleep() выполняет задержку выполненя сценария в секундах (seconds).
usleep
Задержка выполнения сценария в микросекундах.
Синтаксис :
void usleep(int micro_seconds);
Задержка выполнения сценария в микросекундах (micro_seconds). Эта функция не работает в Windows.
die
Вывод сообщения и завершение текущего сценария.
Синтаксис :
void die(string message);
Эта функция выводит сообщение и прекращает выполнение текущего скрипта. Не возвращает значение.
<?php
$filename = '/path/to/data-file'; $file = fopen($filename, 'r')
or die "unable to open file ($filename)"; ?>
exit
Завершает текущий сценарий.
Синтаксис : void exit(void);
Эта функция завершает текущий сценарий. Не возвращает значение.
assert
Проверка истинности значения.
Синтаксис :
int assert(string|bool assertion);
В качестве аргумента функции может быть указано значение или строка, содержащая код PHP (как в функции eval()). Функция проверяет, является ли значение (или выражение) равным false, и, если это так, выполняет определенные действия.
Поведение функции определяется установками в файле конфигурации или при вызове функции assert_options().
Обычно эта функция используется исключительно в целях отладки, для проверки тех значений, которые всегда должны быть истинны (например: подключение модуля, свободное пространство на диске и т.д.).
В целом же выполнение сценария не должно зависеть от таких проверок, а использовать обычные проверки возвращаемых функциями значений.
<?php
function handler() { echo "\n* Failed * \n";
}
assert("\$a='1';"); echo "a: $a \n"; assert(0);
// завершать сценарий
echo assert_options(ASSERT_BAIL, 1); // вызвать обработчик
assert_options(ASSERT_CALLBACK, "handler");
//не выдавать сообщений PHP @assert(--$a);
//эта строка не будет выполнена echo "\n ... \n"
Приведенный пример выведет:
a: 1
Warning: Assertion failed in file.php on line 20 0
* Failed *
assert_options
Определение параметров assert.
Синтаксис :
mixed assert_options(int parameter [, mixed value])
Эта функция позволяет определить поведение конструкции assert(). Возвращается предыдущее значение параметра (или значение false при ошибке), указанного в первом аргументе одной из следующих констант:
|
|
|
|
|
|
|
|
|
Параметр |
|
ini-параметр |
|
Умолчание |
|
|
|
ASSERT_ACTIVE |
|
asser.active |
1 |
|
Разрешить указание кода в |
|
|
|
|
assert(). |
||||
|
|
|
|
|
|
|
|
|
ASSERT_WARNING assert.warning |
1 |
|
Выдавать предупреждение |
|||
|
|
PHP. |
|||||
|
|
|
|
|
|
|
|
|
ASSERT_BAIL |
|
assert.bail |
0 |
|
Завершать выполнение, |
|
|
|
|
если "неистинно". |
||||
|
|
|
|
|
|
|
|
|
ASSERT_QUIET_EVAL assert.quiet_eval 0 |
|
Не выдавать сообщений. |
||||
|
ASSERT_CALLBACK |
|
assert_callback |
|
(null) |
|
Установить функцию в |
|
|
|
|
|
|
|
|
качестве обработчика
"неистинных" assert().
Если значение необходимо переопределить, его указывают во втором аргументе.
eval
Производит выполнение строки содержащей PHP код.
Синтаксис :
void eval(string code_str);
Функция eval() производит выполнение строки, заданной в code_str содержащей PHP код. Кстати, это может пригодиться для сохранения кода в текстовом поле базы данных для более позднего выполнения. Не забывайте, что указанный в строке код должен быть синтаксически правильным (например, должны присутствовать точки с запятой после каждой команды и т.п.), в противном случае сценарий будет завершен в этой строке с ошибкой. Учитывайте также, что те значения переменных, которые будут установлены в данной строке, будут использоваться в оставшейся части сценария.
При изменении переменных значений в eval() эти переменные будут изменены и в основных данных.
Если в строке указан оператор return, то тогда выполнение указанного кода будет досрочно завершено и возвращенное значение можно будет получить как значение, возвращаемое самой функции.
<?php
$string = 'cup'; $name = 'coffee';
$str = 'This is a $string with my $name in it. ';
echo $str;
eval( "\$str = \"$str\";" ); echo $str;
?>
Результатом выполнения этого кода будет:
This is a $string with my $name in it.
This is a cup with my coffee in it.
Управление исполнением сценария PHP : Статус подключений
Внутренне PHP имеет три статуса подключения:
•0 - NORMAL;
•1 - ABORTED (прервано пользователем);
•2 - TIMEOUT (истеклож время ожидания ответа).
При норамальном выполнении сценария активно состояние NORMAL. Если во время загрузки страницы пользователь нажал кнопку STOP, активным становится состояние ABORTED. Если сценарий выполняется дольше отведенного ему времени, устанавливается флаг состояния TIMEOUT. Возможно определить, как должен вести себя сценарий в зависимости от этих условий.
Если требуется, чтобы сценарий продолжал свое выполнение при разрыве
соединения пользователем, нужно установить в файле конфигурации значение параметра ignore_user_abort = 1 (это также можно сделать в файлах конфигурации Apache). Можно также воспользоваться функцией ignore_user_abort(). В противном случае, сценарий завершается.
Чтобы игнорировать завершение сценария таймером, необходимо использовать функцию set_time_limit().
Если функцией register_shutdown_function() была установлена функция "запускаемая при завершении сценария", то, вне зависимости от статуса подключения, она будет исполнена перед тем, как сценарий завершится. И в "завершающей" функции можно будет выяснить (с помощью функции: connection_aborted(), connection_timeout() и connection_status()), был ли сценарий завершен нормально или досрочно.
connection_aborted
Определения разрыва подключения пользователем.
Синтаксис :
int connection_aborted(void);
Функция connection_aborted() возвращает true, если подключение было разорвано пользователем.
connection_status
Определения статуса подключения.
Синтаксис :
int connection_status(void);
Возвращает значение битового поля, позволяющее выяснить в "завершающей" функции, был ли сценарий завершен досрочно и причину этого. Например, если возвращается 3 (ABORTED | TIMEOUT), то это означает, что время выполнения истекло, а также то, что пользователь отказался от загрузки страницы.
Если возвращается 0 (то есть значение NORMAL), то это означает, что выполнение сценария не было прервано.
connection_timeout
Определения наступления тайм-аута.
Синтаксис :
int connection_timeout(void);
Возвращает true, если время выполнения сценария истекло.
ignore_user_abort
Прерывание сценария при разрыве подключения.
Синтаксис :
int ignore_user_abort([int setting]);
Аргументом setting можно указать, необходимо ли досрочно завершать выполнение сценария, если связь с клиентом потеряна. Если аргумент не указан, то возвращается текущая установка.
