4

PHP では、次のように Content-Type を設定できます。

header('Content-Type: text/plain');

しかし、エラー メッセージを表示する必要がある PHP クラスで作業している場合、エラー メッセージの形式はコンテンツ タイプに応じて表示されます。たとえば、ページが の場合、text/htmlHTML 形式のエラー メッセージが表示されます。それ以外の場合は、プレーン テキストのエラー メッセージを表示します。

ページ Content-Type を検出するために使用できる関数/スニペットはありますか?

注: PHP クラス ファイルがページに「添付」されているとします。require_once()

更新: @Tamil の回答から、短いテストを実行しました。

<?php
header('Content-Type: text/plain');
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
echo finfo_file($finfo, __FILE__) . "\n";
finfo_close($finfo);
?>

返すtext/x-phpだけです。しかし、結果が返されることを期待していtext/plainます。

4

1 に答える 1

9

関数を試してくださいheaders_list()

<?php
header('Content-Type: text/plain');

$headers = headers_list();

var_dump($headers);
?>

ショー(私の場合):

array(2) {
  [0]=>
  string(23) "X-Powered-By: PHP/5.4.5"
  [1]=>
  string(24) "Content-Type: text/plain"
}

結果配列を正規化するには、これを使用できます。

<?php
header('Content-Type: text/plain');

$headers = headers_list();

foreach($headers as $index => $value) {
    list($key, $value) = explode(': ', $value);

    unset($headers[$index]);

    $headers[$key] = $value;
}

var_dump($headers);
?>

ショー:

array(2) {
  ["X-Powered-By"]=>
  string(9) "PHP/5.4.5"
  ["Content-Type"]=>
  string(10) "text/plain"
}

したがって、Content-Type正規化された配列を持つヘッダーは次のように取得できます。

echo $headers['Content-Type'];
于 2013-04-24T02:52:31.837 に答える