• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:htmlを含まないphpファイルにもHTMLヘッダー内にエンコード形式を記述する必要はあるのでしょうか?)

HTMLを含まないphpファイルにエンコード形式を記述する必要はある?

このQ&Aのポイント
  • htmlを含まないphpファイルにもエンコード形式を記述する必要があるのか?
  • フォームデータの入力、チェック、メール送信の分離したphpファイルのうち、HTMLコードが出力されるのはenter.htmlのみ
  • enter.html以外のphpファイルにはエンコード形式を記述する必要があるか

質問者が選んだベストアンサー

  • ベストアンサー
  • utano_m
  • ベストアンサー率45% (14/31)
回答No.1

結論から言うと、書く必要があります。 PHPがレスポンスを返す場合、何も指定がなければ、 PHPが自動的にhttpヘッダー(HTMLのヘッダー部やmetaタグではない)に "Content-Type:text/html"を付加して送信します。 ブラウザ側はそのhttpヘッダー情報を読み、html文書であると解釈して echoやprintで出力された文字列を表示します。 metaタグもなくHTMLの書式でもない文字列がまともに表示されるのは ブラウザがHTML文書だと解釈して足りない部分を補完してくれる機能があるからです。 文字コードについても同様に(単なる文字列にはエンコード指定がないため) ブラウザが独自に判断して「たぶんこれ」と思う文字コードで解釈します。 httpヘッダーについては自動で付加("Content-Type:text/html"の場合)されるので 意識する必要はありませんが、ユーザー側のブラウザにHTML補完機能や エンコード自動解析の機能が必ず備わっていると期待するべきではありません。 WEB標準(が確立されているかどうか微妙ですが)に準拠したHTML文書を送信するのが無難でしょう。 function html_message( $msg = "" ) { print <<<HERE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>Message</title> </head> <body>  $msg </body> </html> HERE; } 私の場合上記のような関数をつかう等しています。

参考URL:
http://php.planetmirror.com/manual/ja/function.header.php
kitty1000
質問者

お礼

utano_mさん ご回答ありがとうございました。 良く理解できました。 キャサリン

関連するQ&A