Request
Класс-помощьник по работе с активным запросом.
Методы
request::POST()
Получает и проверяет POST-данные. В случае неудачи или если данных нет, бросает Check_Except.
Пример
try {
$rules = array(
'a' => array('int(1, 5)', 'Жажду числа от 1 до 5.')
);
$request = request::POST();
// или
$request = request::POST('key.subkey');
// или
$request = request::POST($rules);
// или
$request = request::POST('key.subkey', $rules);
} catch (Check_Except $e){
}
request::FILES()
То же самое, что request::POST() только для переменной $_FILES. Плюс возвращает массив файлов в более удобном виде.
Пример
try {
print_r($_FILES);
/* Array
(
[file] => Array
(
[name] => Array
(
[0] => text1.txt
[1] => text2.txt
)
[type] => Array
(
[0] => application/octet-stream
[1] => application/octet-stream
)
[tmp_name] => Array
(
[0] => ...
[1] => ...
)
[error] => Array
(
[0] => 0
[1] => 0
)
[size] => Array
(
[0] => 96
[1] => 247
)
)
) */
print_r(request::FILES());
/* Array
(
[file] => Array
(
[0] => Array
(
[name] => test1.txt
[type] => application/octet-stream
[tmp_name] => ...
[error] => 0
[size] => 96
)
[1] => Array
(
[name] => test2.txt
[type] => application/octet-stream
[tmp_name] => ...
[error] => 0
[size] => 247
)
)
) */
} catch (Check_Except $e){
}
request::GET()
То же самое, что request::POST() только для GET.
request::PUT()
То же самое, что request::POST() только для PUT.
Обратите внимание: Метод подставляет переменную $_PUT в $GLOBALS. Не обращайтесь к ней напрямую.
request::DELETE()
То же самое, что request::POST() только для DELETE.
Обратите внимание: Метод подставляет переменную $_DELETE в $GLOBALS. Не обращайтесь к ней напрямую.
request::cookie()
Устанавливает и получает печеньки.
Пример
request::cookie('test1', 'Ставим 1');
request::cookie('test2', 'Ставим 2', '+3 hours');
// Ставим 1
print_r(request::cookie('test1'));
request::redirect()
Редирект на внутреннюю страницу сайта или стороннюю ссылку.
Пример
// в корень
request::redirect('/');
// на to/path относительно текущей страницы
request::redirect('to/path');
request::status()
Шлёт заголовок.
Пример
// HTTP/1.1 200 OK
request::status(200);
// HTTP/1.1 404 Not Found
request::status(404);
request::method()
Получает метод запроса: GET, POST, PUT, DELETE и т.д.
request::client_ip()
Получает IP пользователя.
request::headers()
Получает HTTP-заголовки.
request::user_agent()
Получает строку браузера пользователя.
Пример
// Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.11
print_r(request::user_agent());
// используется Browser Capabilities Project
print_r(request::user_agent(true));
/* Array
(
[parent] => Opera 11.00
[browser] => Opera
[version] => 11.00
[majorver] => 11
[minorver] => 00
[win32] => true
[frames] => true
[iframes] => true
[tables] => true
[cookies] => true
[javascript] => true
[javaapplets] => true
[cssversion] => 3
[browser_name_regex] => ^Opera/9\.80.*\(.*Windows NT 6\.1.*\).*Version/11\..*$
[browser_name_pattern] => Opera/9.80*(*Windows NT 6.1*)*Version/11.*
[platform] => Win7
) */
request::accept()
Проверяет поддержку браузером типа данных.
Пример
// true
print_r(request::accept('text/plain'));
print_r(request::accept());
/* Array
(
[image/jpeg] => Array
(
[q] => 1
)
[image/gif] => Array
(
[q] => 1
)
[image/x-xbitmap] => Array
(
[q] => 1
)
[text/html] => Array
(
[q] => 1
)
[image/webp] => Array
(
[q] => 1
)
[image/png] => Array
(
[q] => 1
)
[application/xhtml+xml] => Array
(
[q] => 1
)
[application/xml] => Array
(
[q] => 0.9
)
[*/*] => Array
(
[q] => 0.1
)
) */
request::accept_language()
То же самое, что request::accept() только для языков.
request::accept_encoding()
То же самое, что request::accept() только для методов сжатия.
request::is_ajax()
Проверяет вызван ли запрос XMLHttpRequest.