Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / PHP / Руководство по РНР 3.0 / Справочник функций /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Дополнительные функции - Программирование от RIN.RU
Дополнительные функции




Эти функции были размещены здесь, т.к. не подходят не под какую либо категорию.


eval


eval -- Производит выполнение строки содержащей PHP код


Описание void eval(string code_str);


eval() производит выполнение строки, данной в code_str содержащей PHP код. Кстати, это может пригодиться для сохранения кода в текстовом поле базы данных для более позднего выполнения.


Имеются некоторые условия, которые надо иметь в виду при использовании eval(). Не забудьте, что переданная строка должна иметь допустимый PHP код, при включении чего-нибудь подобного завершению кода с точкой с запятой дальнейшее выполнение не прервется на строке после eval(), поэтому пропускайте это в code_str.


Также не забудьте, что при изменении переменных значений в eval() эти переменные будут изменены и в основных данных.


Пример. eval() - простое объединение текста


<?php
$string = "cup";
$name = "coffee";
$str = "This is a $string with my $name in it.<br>";
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.



die


die -- Вывод сообщения и завершение текущего скрипта


Описание void die(string message);


Эта функция выводит сообщение и прекращает выполнение текущего скрипта. Не возвращает значение.


Пример. die


<?php
$filename = "/path/to/data-file";
$file = fopen($filename, "r")
or die "unable to open file ($filename)";
?>




exit


exit -- Завершает текущий скрипт


Описание void exit(void);


Эта функция завершает текущий скрипт. Не возвращает значение.



iptcparse


iptcparse -- Анализирует двоичный IPTC http://www.xe.net/iptc/ блок на одиночные тэги.


Описание array iptcparse(string iptcblock);


Эта функция анализирует двоичный блок IPTC на одиночные теги. Возвращает массив, использующий tagmarker как индекс и значение как значение. Возвращает false при ошибке или если никаких IPTC данных не было найдено. См. GetImageSize() для примера.



leak


leak -- Отсечение куска памяти


Описание void leak(int bytes);


Leak() отсекает определенный объем памяти.


Это полезно при отладке диспетчера памяти, который автоматически очищает "отсеченную" память при выполнении запроса.



pack


pack -- упаковывает данные в двоичную строку


Описание string pack(string format, mixed [ args ]...);


Упаковывает данные в двоичную строку согласно формату. Возвращает двоичную строку, содержащую данные.


Идея на эту функцию принималась из Perl и всей работы кодов форматирования также как там. Строка формата состоит из кодов формата, сопровождаемые факультативным параметром ретранслятора. Параметр ретранслятора может быть или целочисленное значение или * для повторение до конца входных данных. Для a, A, h, H количество повторов определяет, сколько принимается символов одного параметра данных, для @ это безусловная позиция, где поместить следующие данные, для всего остального количество повторов определяет сколько данных будет использовано и упаковано в возникающую в результате двоичную строку. В настоящее время выполнено:


  • a строка NUL-заполнений

  • A строка SPACE-заполнений

  • h Hex строка, младший полубайт вначале

  • H Hex строка, старший полубайт вначале

  • c signed char

  • C unsigned char

  • s signed short (всегда 16 бит, machine byte order)

  • S unsigned short (всегда 16 бит, machine byte order)

  • n unsigned short (всегда 16 бит, big endian byte order)

  • v unsigned short (всегда 16 бит, little endian byte order)

  • i signed integer (machine dependant размер и byte order)

  • I unsigned integer (machine dependant размер и byte order)

  • l signed long (всегда 32 бит, machine byte order)

  • L unsigned long (всегда 32 бит, machine byte order)

  • N unsigned long (всегда 32 бит, big endian byte order)

  • V unsigned long (всегда 32 бит, little endian byte order)

  • f float (machine dependent размер и representation)

  • d double (machine dependent размер и representation)

  • x NUL байт

  • X Копирует один байт

  • @ NUL-Заполнение до конкретной позиции




Пример. pack форматируем строку


$binarydata = pack(" nvc* ", 0x1234, 0x5678, 65, 66);


Возникающая в результате двоичная строка будет длиной 6 байтов и содержать последовательность байтов 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.


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


Также обратите внимание, что PHP хранит интегральные значения как значения со знаком и имеет machine dependant размер. Если вы делаете без знака, то интегральное значение будет сохранено и сконвертировано, при этом конечный результат будет неизвестен.



register_shutdown_function


register_shutdown_function -- Устанавливает функцию, которая будет выполнена при завершении.


Описание int register_shutdown_function(string func);


Устанавливает функцию с именем func, которая будет выполнена при завершении.



serialize


serialize -- Генерирует удобохраниемое представление значения


Описание string serialize(mixed value);


serialize() возвращает строку состоящую из потока байтов при представлениизначения value, которое может где-нибудь сохранено.


Это полезно для сохранения или передачи значений PHP без потери их типа и структуры..


Чтобы преобразовать строку обратно в PHP значение, используйте unserialize(). serialize() обрабатывает следующие типы: integer , double , string , array (многомерный) и object (объект будет преобразован в последовательную форму, но методы при этом будут утеряны).


Пример. serialize
// $session_data содержит многомерный массив с информацией о сессии
// текущего пользователя. Мы используем serialize() для сохранения
// этого в базе данных в конце запроса.


$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array(serialize($session_data), $PHP_AUTH_USER);
if (!odbc_execute($stmt, &$sqldata)) {
$stmt = odbc_prepare($conn,
"INSERT INTO sessions (id, data) VALUES(?, ?)");
if (!odbc_execute($stmt, &$sqldata)) {
/* Что-то сделано неправильно. */
}
}




sleep


sleep -- Задержка выполнения


Описание void sleep(int seconds);


Sleep фукция выполняет задержку выполненя программы в секундах (seconds).


См. также usleep().



unpack


unpack -- Распаковывает данные из двоичной строки


Описание array unpack(string format, string data);


Распаковывает данные из двоичной строки в массив согласно формату. Возвращает массив, содержащий распакованные элементы.


Unpack работает не так как в Perl поскольку распакованные данные сохранены в ассоциативном массиве. Чтобы сделать это, Вы должны установить различные коды формата, и отделить их наклонной чертой вправо /.


Пример. Распаковываем строку


$array = unpack("c2chars/nint", $binarydata);


Возникающий в результате массив будет содержать "chars1", "chars2" и "int".


Для объяснения кодов формата см. также: pack()


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



unserialize


unserialize -- создает PHP значение из сохраненного представления


Описание mixed unserialize(string str);


unserialize() берет одно сохраненное значение (см. serialize()) и преобразует обратно в PHP значение. Возвращает преобразованное значение, и может иметь тип: integer , double , string , array или object . Если был преобразован object, то методы не востановятся.


Пример. unserialize


// Здесь мы используем unserialize() для загрузки данных о сессии из базы данных
// в $session_data. Этот пример дополняет описанный в месте
// с serialize().


$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array($PHP_AUTH_USER);
if (!odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) {
// Если сбой запуска или выборки , то инициализируем массив
$session_data = array();
} else {
// Мы должны иметь представление в $tmp[0].
$session_data = unserialize($tmp[0]);
if (!is_array($session_data)) {
// Что-то неправильно, инициализируем массив
$session_data = array();
}
}




uniqid


uniqid -- генерирует уникальный идентификатор


Описание int uniqid(string prefix);


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


Если Вы нуждаетесь в уникальном идентификаторе или лексеме(маркере), и Вы предполагаете раздавать эту лексему(маркер) пользователю через сеть (то есть сеанс cookies), то рекомендуется, чтобы Вы использовали что - нибудь со строками


$token = md5(uniqid("")); // Не произвольно
$better_token = md5(uniqid(random())); // Намного лучше, труднее подобрать


Это создаст 32 символьный идентификатор (128 бит hex число) который чрезвычайно трудно предсказать.



usleep


usleep -- Задержка выполнения в микросекундах


Описание void usleep(int micro_seconds);


Задержка выполнения программы в микросекундах(micro_seconds).


См. также sleep().



 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Adabas D функции

Специфичные функции Apache

Функции обработки массивов

Математические BC (произвольной точности) функции

Календарные Функции

Функции Даты/Времени

dBase функции

Функции dbm

Функции для работы с каталогами

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

Функции работы с filePro

Функции файловой системы

Функции, связанные с HTTP

Функции работы с Hyperwave

Функции работы с изображениями

Функции IMAP

PHP опции и информация

Функции работы с Informix

LDAP Функции

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

Математические функции

Функции mSQL

Функции MySQL

Функции для работы с Sybase

Сетевые функции

Функции ODBC

Функции Oracle

Функции PDF

Функции PostgreSQL

Функции регулярных выражений

Функции семафоров и разделяемой памяти

Solid (надежные) функции

Функции SNMP

Строковые функции

Функции URL

Функции переменных

Функции Vmailmgr

Функции Gz-файлов

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь