Эти функции были размещены здесь, т.к. не подходят не под какую либо категорию.
eval
eval -- Производит выполнение строки содержащей PHP код
Описание
void eval(string code_str);
eval() производит выполнение строки, данной в code_str
содержащей PHP код. Кстати, это может пригодиться для сохранения кода в
текстовом поле базы данных для более позднего выполнения.
Имеются некоторые условия, которые надо иметь в виду при использовании
eval(). Не забудьте, что переданная строка должна иметь допустимый PHP
код, при включении чего-нибудь подобного завершению кода с точкой с запятой
дальнейшее выполнение не прервется на строке после
eval(), поэтому пропускайте это в code_str.
Также не забудьте, что при изменении переменных значений в eval()
эти переменные будут изменены и в основных данных.
Пример 1. 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);
Эта функция выводит сообщение и прекращает выполнение текущего скрипта. Не
возвращает значение.
Пример 1. die
<?php
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
or die "unable to open file ($filename)";
?>
|
exit
exit -- Завершает текущий скрипт
Описание
void exit(void);
Эта функция завершает текущий скрипт. Не возвращает значение.
iptcparse
Описание
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-Заполнение до конкретной позиции
Пример 1. 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
(объект будет преобразован в последовательную форму, но методы при этом будут
утеряны).
Пример 1. 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 поскольку распакованные данные сохранены в
ассоциативном массиве. Чтобы сделать это, Вы должны установить различные коды
формата, и отделить их наклонной чертой вправо /.
Пример 1. Распаковываем строку
$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, то методы не востановятся.
Пример 1. 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), то рекомендуется, чтобы Вы использовали что - нибудь со строками
Это создаст 32 символьный идентификатор (128 бит hex число) который чрезвычайно
трудно предсказать.
usleep
usleep -- Задержка выполнения в микросекундах
Описание
void usleep(int micro_seconds);
Задержка выполнения программы в микросекундах( micro_seconds).
См. также sleep().
Назад, к содержанию
|