PHP 7: HTTP-заголовки ответа сервера
В данной заметке коротко о том, как послать на сервер заголовки, принять их и прочитать. Буферизация ответа. Хэширование.
Переадресация и перезапрос ресурса
//Переадресация со статусом 302
header("Location: http://mysite.local");
//Переадресация со статусом 301
header("HTTP/1.1 301 MovedPermanently");
header("Location: http://mysite.local");
//Или
header("Location: http://mysite.local", true, 301);
//Перезапрос ресурса
header("Refresh: 3");
header("Refresh: 3;url=http://mysite.local");
Установка типа содержимого
//Принудительная установка типа передаваемого ресурса
header("Content-Type: text/xml");
//Принудительная установка кодировки передаваемого ресурса
header("Content-Type: text/html;charset=utf-8");
//Перенаправление вывода передаваемых данных
header("Content-Type: text/plain");
header("Content-Disposition: attachment;filename = \"myfile.txt\"");
Управление кэшированием
//Запрет кэширования
header("Cache-Control: no-cache, max-age = 0");
//Полный запрет кэширования
header("Cache-Control: no-store");
//Разрешение кэширования на один час относительно времени запроса
header("Cache-Control: max-age = 3600");
//Разрешение кэширования на один час
header("Expires: " . date("r", time() + 3600);
Буферизация вывода
//Включаем буферизацию
ob_start();
echo 'Hello world!';
setcookie("name", "John");
//Посылаем содержимое буфера
ob_flush();
echo 'Ещё контент!';
echo 'И ещё контент!';
//Посылаем содержимое буфера и отключаем его
ob_end_flush();
//Включаем буферизацию
ob_start();
echo "Hello ";
//Выбираем то, что находится в буфере. Его содержимое на очищается!
$out1 = ob_get_contents();
echo "World";
//Выбираем то, что находится в буфере. Его содержимое на очищается!
$out2 = ob_get_contents();
//А теперь очищаем буфер, но не закрываем
ob_clean();
echo "Саша";
echo "и ";
echo "Маша";
//Выбираем то, что находится в буфере
$out3 = ob_get_contents();
//Очищаем буфер и закрываем его
ob_end_clean();
echo $out1; //Hello
echo $out2; //Hello World
echo $out3; //Саша и Маша
Хэширование
echo md5("password");
//5f4dcc3b5aa765d61d8327deb882cf99
echo sha1("password");
//5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
//Генерация хэша ссолью
$hash = crypt("password", '$1$password$');
//Генерация стойкого хэша со случайной солью. Рекомендуется.
$hash = password_hash("password", PASSWORD_BCRYPT);
//Проверка пароля
if( password_verify("password", $hash) ){
echo "Пароль верный";
}
Предыдущая запись
Основы PHP 7 Часть #5: Использование cookieСледующая запись
Основы PHP 7 Часть #7: Работа с сессиями (сеансами)