Проверьте на нулевой объект и нулевое значение, содержащееся в объекте в Java 8 способом

Я уже ответил на этот вопрос, но я сделаю это снова, так как между тем я узнал, что есть особые случаи, если вы работаете в CLI (перенаправления не могут произойти и, следовательно, не должны exit() ), или если ваш веб-сервер работает с PHP как (F) CGI (для правильной переадресации требуется предварительно установленный заголовок Status).

function Redirect($url, $code = 302)
{
    if (strncmp('cli', PHP_SAPI, 3) !== 0)
    {
        if (headers_sent() !== true)
        {
            if (strlen(session_id()) > 0) // if using sessions
            {
                session_regenerate_id(true); // avoids session fixation attacks
                session_write_close(); // avoids having sessions lock other requests
            }

            if (strncmp('cgi', PHP_SAPI, 3) === 0)
            {
                header(sprintf('Status: %03u', $code), true, $code);
            }

            header('Location: ' . $url, true, (preg_match('~^30[1237]$~', $code) > 0) ? $code : 302);
        }

        exit();
    }
}

Я также рассмотрел вопрос о поддержке различных Коды перенаправления HTTP (301, 302, 303 и 307), как это было описано в комментариях к моему предыдущему ответу, вот описания:

  • 301 - Перемещено на постоянной основе
  • 302 - Найдено
  • 303 - См. Other
  • 307 - Временное перенаправление (HTTP / 1.1)
13
задан Jump3r 28 November 2017 в 19:20
поделиться