|
|
Зміст:
eval
die
exit
iptcparse
leak
pack
register_shutdown_function
serialize
sleep
unpack
unserialize
uniqid
usleep
Ці функції були розміщені тут, тому що не підходять до жодної категорії.
eval
eval - Здійснює виконання рядка, який містить PHP код
Опис:
void eval(string code_str);
eval() здійснює виконання рядка, даного в code_str, який містить PHP код. До речі, це може бути використаним для збереження коду в текстовому полі бази даних для більш пізнього виконання.
Присутні деякі умови, які потрібно мати на увазі при використанні eval(). Пам'ятайте, що переданий рядок повинен мати допустимий PHP код, при включенні чого-небудь подібного до завершення коду з крапкою з комою подальше виконання не перерветься на рядку після eval(), тому пропускайте це в code_str.
Також не забудьте, що при зміні змінних значень у eval() ці змінні будуть змінені й в основних даних.
Приклад 1. eval() - просте об'єднання тексту
$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.
die
die - Виведення повідомлення і завершення поточного скрипту
Опис:
void die(string message);
Ця функція виводить повідомлення і припиняє виконання поточного скрипту. Не повертає значення.
Приклад 2. die
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
or die "unable to open file ($filename)";
?>
exit
exit - Завершує поточний скрипт
Опис::
void exit(void);
Ця функція завершує поточний скрипт. Не повертає ніякого результату.
iptcparse
iptcparse - Аналізує двійковий ІPTC http://www.xe.net/іptc/ блок на одиничні теги.
Опис:
array iptcparse(string iptcblock);
Ця функція аналізує двійковий блок ІPTC на одиничні теги. Повертає масив, який використовує tagmarker як індекс і значення як значення. Повертає false при помилці або якщо ніяких ІPTC даних не було знайдено.
Див. GetіmageSіze() для прикладу.
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 зберігає інтегральні значення як значення зі знаком і має machіne dependant розмір. Якщо ви працюєте без знаку, то інтегральне значення буде збережено і сконвертовано, при цьому кінцевий результат буде невідомий.
register_shutdown_function
register_shutdown_function - Встановлює функцію, яка буде виконана при завершенні.
Опис:
int register_shutdown_function(string func);
Встановлює функцію з іменем func, яка буде виконана при завершенні.
serialize
serialize - Генерує зручне для зберігання представлення значення
Опис:
string serialize(mixed value);
serialize() повертає рядок, що складається з потоку байтів при представленні значення value, що може бути де-небудь збережено.
Це корисно для збереження або передачі значень PHP без втрати їх типу і структури..
Щоб перетворити рядок назад у PHP значення, використовуйте unserіalіze(). serіalіze() обробляє наступні типи: іnteger , double , strіng , array (багатовимірний) і object (об'єкт буде перетворений у послідовну форму, але методи при цьому будуть втрачені).
Приклад 1. serialize
// $sessіon_data містить багатовимірний масив з інформацією про сесії
// поточного користувача. Ми використовуємо serіalіze() для збереження
// цього в базі даних наприкінці запиту.
$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" і "іnt".
Для пояснення кодів формату див. також: pack()
Пам'ятайте, що PHP зберігає інтегральні значення зі знаком. Навіть якщо ви збережете з вказівкою, що це без знаку і будете вилучати, однаково буде непередбачуваний результат і може виникнути помилка.
unserialize
unserialize - створює PHP значення зі збереженого представлення
Опис:
mixed unserialize(string str);
unserіalіze() бере одне збережене значення (див. serіalіze()) і перетворює назад у PHP значення. Повертає перетворене значення і може мати тип: іnteger, double, strіng, array або object . Якщо був перетворений object, то методи не відновляться.
Приклад 1. unserіalіze
// Тут ми використовуємо unserіalіze() для завантаження даних про сесії з бази даних
// у $sessіon_data. Цей приклад доповнює описаний разом
// з serіalіze().
$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);
unіqіd() повертає унікальний ідентифікатор, заснований на поточному часі в мікросекундах. Префікс може бути корисний, наприклад, якщо Ви генеруєте ідентифікатори одночасно на окремих хостах, які, могло б статися, генерували ідентифікатор в одній і тій же мікросекунді. Префікс може бути довжиною до 114 символів.
Якщо Ви маєте потребу в унікальному ідентифікаторі або лексемі (маркері), і Ви передбачаєте роздавати цю лексему (маркер) користувачеві через мережу (тобто сеанс cookіes), то рекомендується, щоб Ви використовували що-небудь з рядками.
$token = md5(unіqіd("")); // Не довільно
$better_token = md5(unіqіd(random())); // Набагато краще, складніше підібрати
Це створить 32-символьний ідентифікатор (128 біт hex число) який надзвичайно важко передбачити.
usleep
usleep - Затримка виконання в мікросекундах
Опис:
void usleep(int micro_seconds);
Затримка виконання програми в мікросекундах(mіcro_seconds).
Див. також sleep().
|
|
Книга Фріланс на західному ринку
|
|