Эти функции были размещены здесь, т.к. не подходят не под какую либо категорию.
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
|