2017-10-10 55 views
-2

http_response_code函數似乎應該像header一樣工作,因爲它需要在發送任何輸出之前調用。但是,PHP手冊沒有提到這一點。它是以這種方式工作嗎?例如,下列程序是否會產生錯誤?是否需要在發送任何輸出之前調用http_response_code?

<!DOCTYPE html> 
<html> 
<?php 
http_response_code(404); 
?> 
</html> 

如果沒有,爲什麼header的工作,而非http_response_code

+3

「下列程序是否會產生錯誤?」 =>爲什麼你不放棄它? –

+0

@JulienLachal但這並不是所有程序員都能看到的!另外,我沒有執行PHP的快速方法。 – RamenChef

+0

聽起來對我來說,你並沒有真正想辦法去做,請參閱http://sandbox.onlinephpfunctions.com/ –

回答

0

一個用於此功能在PHP手冊的意見概括起來很好:

http_response_code基本上是寫一個HTTP 狀態首部,與額外的獎勵,PHP將制定出一個的簡寫方式合適的 通過將您的響應代碼與 值之一進行匹配來提供的原因短語,其值在 php-src/main/http_status_codes.h中保持不變。請注意,這意味着您的響應 代碼必須匹配PHP知道的響應代碼。您無法使用此方法創建自己的響應代碼,但可以使用 標題方法。

總之 - 「http_response_code」和用於設置響應代碼「報頭」 之間的差異:

  1. 使用http_response_code將導致PHP匹配並從原因短語是列表應用原因短語硬編碼到PHP 源代碼中。

  2. 由於上面的第1點,如果您使用http_response_code,您必須設置PHP知道的代碼。您不能設置自己的自定義代碼, 但是如果您使用 標頭方法,則可以設置自定義代碼(和Reason Phrase)。

相關問題