В данной заметке коротко о том, как послать на сервер заголовки, принять их и прочитать. Буферизация ответа. Хэширование.

Переадресация и перезапрос ресурса

//Переадресация со статусом 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 "Пароль верный";
}