ホームページ  >  記事  >  バックエンド開発  >  PHP XMLヘッダー

PHP XMLヘッダー

WBOY
WBOYオリジナル
2024-08-29 13:00:52472ブラウズ

PHP XML ヘッダーは、text/html のデフォルトのヘッダー コンテンツではなく、PHP ファイルから出力される XML コンテンツ タイプです。ヘッダーのコンテンツ タイプを XML に設定すると、ブラウザへの出力が XML 形式であることを示します。 XML は Extensible Markup Language の略で、ドキュメントのエンコーディングの規則を示します。 PHP はオープンソースのプログラミング言語であり、サーバー側で Web コンテンツやアプリケーションを動的に設定するために使用されます。 PHP で動的 HTML コンテンツを生成する方法と同様に、動的 XML コンテンツも PHP で生成できます。

広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

構文

以下は、PHP XML ヘッダーの構文です。

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

上記は、PHP XML ヘッダーを使用する場合に XML に変更される Content-type の基本的な構文です。

header(header, replace, http_response_code)

基本的なヘッダー関数は、生の HTTP ヘッダーをクライアントに送信します。出力が送信される前に呼び出されます。

引数:

  • header: 送信するヘッダー文字列を指定し、必須パラメータです。
  • replace: ヘッダーが前のヘッダーを置き換えるか、同じタイプの新しいヘッダーを追加するかを示します。これはオプションのパラメータであり、デフォルトは TRUE、つまり置き換えられます。ブール値 FALSE では、同じタイプの複数のヘッダーが許可されます。
  • http_response_code: HTTP 応答コードを特定の値に強制するもので、オプションのパラメーターです。
<?php
header ("Content-Type:text/xml");
?>
<xml_content>
…………………………
</xml_content>

PHP では、ブラウザに送信される header() が発生する前に出力を行うことはできません。ヘッダーの Content-Type は、ブラウザーにコンテンツの処理方法を指示します。たとえば、ブラウザがサポートできない PDF ファイルがある場合、他のアプリケーションを使用するオプションが表示されます。システム上の他のアプリケーションを使用するように指示するか、特定のアプリケーションをダウンロードするように求められます。

Content-type が text/xml の場合、ファイルは us-ascii として扱われるため、文字セットは指定されません。異なる文字セットの場合は、ヘッダーで指定する必要があります。 PHP で XML を使用する場合、Content-type は「application/xml」として指定され、文字セットは「utf-8」として指定されます。 Content-type ヘッダーは HTTP プロトコルの一部であり、クライアントまたはサーバーにどのような種類のデータが予想されるか、そしてそれをどのように解釈するかを伝えます。

PHP XML ヘッダーの例

さまざまな例を以下に示します:

例 #1

コード:

<!DOCTYPE html>
<html>
<body>
<?php
header("Content-type: text/xml");
echo "<?xml version='1.0' encoding='UTF-8'?>";
echo "<note>";
echo "Hello, this is first PHP XML header";
echo "\n";
echo "<message>Run the code to see the output</message>";
echo "</note>";
?>
</body>
</html>

出力:

PHP XMLヘッダー

ここでは、コンテンツ タイプのヘッダーが XML 形式になっています。

XML は、デバイス中立、ベンダー中立、プラットフォーム中立の幅広い Web ユーザーと XML ツールによってサポートされています。

Content-type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8"?>

上記は、text/xml で使用する推奨される文字セット値です。 MIME および XML プロセッサは、エンティティを UTF-8 で囲まれたものとみなします。データが SMTP リクエストを使用して送信される場合、XML はコンテンツ転送エンコードまたは Base64 エンコードを使用する必要があります。 ESMTP、NNTP、HTTP などの他のタイプのリクエストの場合、コンテンツ転送エンコーディングは必要ありません。

Content-type: text/xml; charset="utf-16"
{BOM}<?xml version='1.0' encoding='utf-16'?>

utf-16 文字セットは、CR および LF 変換を実行せずにバイナリ クリーン プロトコルを使用して XML が HTTP 経由で送信される場合にのみ使用されます。 HTTP はバイナリ プロトコルであるため、ここではコンテンツ転送エンコーディングは必要ありません。

Content-type: text/xml
{BOM}<?xml version="1.0" encoding="utf-16"?>

ここでは charset パラメータが省略されています。したがって、そのような場合、XML プロセッサは文字セットが「us-ascii」であると想定します。このデフォルトは、HTTP リクエストを使用して転送される te​​xt/xml に当てはまります。

ただし、text/xml ヘッダーでは charset の省略はまったく推奨されません。

Content-type: application/xml; charset="utf-16"
{BOM}<?xml version="1.0"?>

ヘッダー コンテンツ タイプを application/xml として使用することをお勧めします。ここで文字セットが提供されているため、XML プロセッサはエンティティを utf-16 でエンコードされたものとして扱います。

Content-type: application/xml
<?xml version='1.0'?>

ここには、BOM パラメータも charset パラメータもありません。 XML はプロセッサを認識しないため、XML エンティティの文字セットについていかなる仮定も行うべきではありません。

例 #2

コード:

<!DOCTYPE html>
<html>
<body>
<?php
header("Content-type: application/xml");
$arr =[
"empName" => "Karthik",
"empid" => 675,
"role" => "UI developer",
"age" => 25,
"city" => "Vizag"
];
echo json_encode($arr);
?>
</body>
</html>

出力:

PHP XMLヘッダー

例 #3

コード:

<!DOCTYPE html>
<html>
<body>
<?php
header("Content-type: text/xml");
echo "<?xml version='1.0' encoding='UTF-8'?>";
$data = [1,2,3,4,5,6,7,8,9];
echo json_encode($data);
?>
</body>
</html>

出力:

PHP XMLヘッダー

結論

これで、トピック「PHP XML ヘッダー」を終了します。 PHP XML ヘッダーとは何かを見てきました。コンテンツ タイプを XML に変更すると、http リクエストとレスポンスに大きな違いが現れます。 PHP コードで XML ヘッダーを宣言するための構文を分析しました。文字セットは、送信されるデータの形式を記述する PHP の重要な部分の 1 つです。デフォルトの us-ascii 文字セットである utf-8 や utf-16 など、さまざまな文字セットを見ました。また、上記の例のいくつかで php xml ヘッダーがどのように機能するかについても確認しました。

以上がPHP XMLヘッダーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。