- ベストアンサー
PHPでincludeを使うと?が入る。
さらくインターネットのレンタルサーバを使用していますが、 index.phpに include('header.php'); を入れてヘッダー部分のHTMLの呼び出しを行なっていますが 表示されるソースを見ていると、includeで呼び出しているヘッダー部分の手前に「?」が 入ってしまいます。 include(dirname(__FILE__).'/header.php'); include($_SERVER['DOCUMENT_ROOT'] . "/header.php"); など使っても同じ現象のため、どうしたら「?」を無くすことができるでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Wikipedia - BOM http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%83%88%E3%82%AA%E3%83%BC%E3%83%80%E3%83%BC%E3%83%9E%E3%83%BC%E3%82%AF UTF-8文書には「BOM有り」と「BOM無し」があります。 ・BOM有り → 文字コードを特に明示しなくてもブラウザが正しく認識してくれることが多い。 → includeで読み込む側にもBOMが存在している場合、2つ目のBOMは「?」と化けて表示される。 ・BOM無し → 文字コードを明示しないと文字化けを起こすことが多い。 → includeで読み込むときに特に心配が要らない。 現在は「UTF-8(BOM有り)」になっていると思われますが、PHPスクリプトは全て「UTF-8(BOM無し)」で作成することが強く推奨されます。ただ、そのままだとブラウザが文字化けを起こすので、 "HTML出力を開始する前に" ←重要 header('Content-Type: text/html; charset=utf-8'); としてブラウザにUTF-8であると明示したContent-Typeヘッダーを送ったり、HTML中に (HTML5) <meta charset="utf-8"> (HTML4) <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> を含めるようにしましょう。どちらかといえばmetaタグには頼らずにheader関数で実現する方が望ましいです。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
header.php の内容を正しく書き直す。
お礼
返事が遅くなってしまい申し訳ありませんでしたが、ご教授しただいた通り文字コードで無事に解決することができ、ありがとうございました。 自分でも気をつけていたつもりでしたが、知識が浅く勉強になりましたが、基礎的な部分だったので反省し自分でも解決できるよう努力していきます。