HTML5が普及する以前、HTML4を厳格なXMLの書式に修正したXHTMLという規格が策定されました。
XMLでは冒頭にXML宣言が必要とされており、
XML
1<?xml version="1.0" encoding="Shift_JIS"?>
これがその宣言です。
ご覧のとおり、 <? ?> は、PHPタグと完全に被ってしまっているので、PHPでパースエラーとなっています。
ですから、PHPでこれを出力する簡単な方法はその部分だけ
PHP
1<?php
2echo '<?xml version="1.0" encoding="Shift_JIS"?>';
3?>
というようにecho文でストリングリテラルとして出力するのが最も簡単です。
簡単なファイルを読み込んで中身を表示させる
とのことですが、パースエラーが起きているということはincludeなどでPHPコードとして読み込んでいるということではないでしょうか?
file_get_contents()メソッドなどでファイル内容を読み込み、echo文などでその内容を出力すればパースエラーは起きないでしょう。
XHTMLは無駄に厳密すぎたためか、結局すぐに廃れました。SEOの観点からも「これからはXHTMLだ」と一大ブームが巻き起こり、あらゆるWEBサイトのコードがXHTMLで書き換えられ、あちこちで勉強会が開かれたのですが、HTML5の話が出始めるとものすごい勢いで終息していく様は滑稽ですらありました。
旧来のWEBサイトのコードなどに、
などと無駄な記述が見ることができますが、それが当時の名残です。
なお、このような無駄な記述は、現在のHTML5でも許容されています。
2016/04/14 22:39