SORU
15 Temmuz 2010, PERŞEMBE


HTTP yanıt kodu göndermek Ne kadar?PHP:

HTTP 200 OK veya 4 XX ya da 5 XX kodu gibi HTTP yanıt kodları (durum kodları) ile yanıt yapmak için gereken bir PHP komut dosyası var.

Nasıl PHP bunu yapabilir miyim?

CEVAP
18 AĞUSTOS 2012, CUMARTESİ


Ben sadece bu soru bulundu ve daha kapsamlı bir cevap ihtiyacı vardı

GibiPHP 5.4bunu gerçekleştirmek için üç yöntem vardır:

Kendi (PHP >üzerinde montaj yanıt kodu = 4.0)

header() işlevi HTTP yanıtı bir çizgi algılar ve bir özel biri ile değiştirmek olanak sağlayan kullanımı-örnek bir özel vardır

header("HTTP/1.1 200 OK");

Ancak, bu (Hızlı)CGI PHP için özel tedavi gerektirir:

$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi')
    header("Status: 404 Not Found");
else
    header("HTTP/1.1 404 Not Found");

Not:** 16, göresebep cümlesiherhangi bir özel dize (standarda uygun) olabilir, ama istemci uyumluluğu uğrunayokorada rastgele bir dize koyarak tavsiye.

Not:php_sapi_name() gerektirirPHP 4.0.1

3 başlık işlev için bağımsız değişken (PHP >= 4.3)

Açıkçası ilk değişken kullanırken birkaç sorun var. Bence en büyük kısmen PHP veya web sunucusu tarafından ayrıştırılır ve kötü belgelenmiş olmasıdır.

4.3, header işlevi bu yana yanıt biraz rahat kod, ama ilk bağımsız değişken boş olmayan bir dize olması gerekir kullanarak ayarlamak sağlar 3. bir argüman. Burada iki seçenek var:

header(':', true, 404);
header('X-PHP-Response-Code: 404', true, 404);

2 tane tavsiye ederim. İlkyokben denedim tüm tarayıcılarda çalışır, ancak bazı küçük tarayıcılar veya web tarayıcıları sadece bir kolon içeren bir başlık satırı ile ilgili bir sorun olabilir. 2. başlık alan adı. değişken herhangi bir şekilde tabii ki standart değildir ve değiştirilebilir, umarım açıklayıcı bir ad seçti.

http_response_code fonksiyon (PHP >= 5.4)

http_response_code() işlevi PHP şeyler yaptı 5.4 ve kullanılmaya başlandıbir sürüdaha kolay.

http_response_code(404);

Hepsi bu.

Uyumluluk

Burada 5.4 aşağıda uyumluluk ihtiyacım vardı ama "" http_response_code işlevi. yeni işlevselliğini istediğinde pişmiş kadar bir işlevdir PHP 4.3 gereğinden fazla geriye uyumluluk vardır, ama sen asla bilemezsin

// For 4.3.0 <= PHP <= 5.4.0
if (!function_exists('http_response_code'))
{
    function http_response_code($newcode = NULL)
    {
        static $code = 200;
        if($newcode !== NULL)
        {
            header('X-PHP-Response-Code: '.$newcode, true, $newcode);
            if(!headers_sent())
                $code = $newcode;
        }       
        return $code;
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Codecourse

    Codecourse

    3 ŞUBAT 2009
  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • Louis C.K.

    Louis C.K.

    18 HAZİRAN 2006