2012-03-06 15 views
0

基本的には、私はWordPressのプラグインを作成しています。私のプラグインが最初に行う機能は、(送信前に)送信される予定のHTTP応答コードとヘッダーを識別することです。送信する前にどのHTTP応答コードとヘッダーが送信されるかを知る方法

httpステータスコードに基づいて、フックが配置され、他のものに基づいてHTTP応答が変更される可能性があります。

これは私が書いている最初のプラグインで、これで私の経験を推測することができます - 私はまだプラグインの基本を持っています。

答えて

2

headers_list()およびhttp_response_code()を参照してください。

http_response_code()は、ご使用のPHPバージョンではご利用いただけない場合があります。それを検出する他の方法はありません。ごめんなさい。しかし、自分で変更しなかった場合、ステータスコードは常に「200 OK」にする必要があります。

/* get headers and HTTP status code (which should be always 200, 
    if you didn't change it before calling this code) */ 

if (!headers_sent()) { 
    $headers = headers_list(); 
    $status = http_response_code(); 
    // change if necessary 
} 
else { 
    // oh noes, cannot change headers anymore 
} 
2

headers_list関数は、送信されたまたは送信されるすべてのヘッダーのリストを表示します。 headers_sent機能で既に送信されているかどうかを判断できますが、送信前に傍受することはできません。私はそれについて間違っている可能性があります - それは出力バッファリングで可能かもしれませんが、私はそれを調べていません。

+0

こんにちはジェームズ!返信いただきありがとうございます。私はheaders_list()をチェックしました。それは以下を返しました:配列 ( [0] => X-Powered-By:PHP/5.3.5 [1] => X-Pingback:http://mysite.com/xmlrpc.php [2] => Content-Type:text/html; charset = UTF-8 ) HTTPステータスコードがありません。私はHTTPステータスコードが必要です... –

2

はあなたのロジックに応じて、ヘッダーが最初のものと一緒に送信されていないかどうかを確認し、二つ目によって提供される結果に繰り返す、組み合わせてheaders_sent()とheaders_list()を使用し、それらを変更する必要が

+0

返信ありがとう...あなたは正しいですが、headers_list()はHTTPステータスコードを与えません。 –

+0

@ahmedtabrez HTTPステータスコード*は実際にはヘッダではない – Kaii

+0

HTTPステータスコードを取得する方法(送信前).... –

関連する問題