<?php echo "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<title>XHTML と PHP</title>
</head>
<body>
<?php echo '<p>aaa<p>'; ?>
</body>
</html>
>Parse error: syntax error, unexpected T_STRING in (略)write.php on line 1
この書き方はまずかったですね。
“(略)”では何も情報は伝わりません。
ファイルへのフルパス、とでも書いておくべきでしたね。
で、原因はXML宣言の "<?" という部分です。
PHPのショートカットタグに該当しているため、XML宣言をPHPの構文と判断しているため、解析に失敗しています。
解決方法としては……
1. PHPのショートカットタグの使用をオフにする
.htaccessが使えるのならば、次の一文を加えてみるといいと思います。
php_flag short_open_tag Off
2. XML宣言をPHPによって書き出す
これが一番確実な方法です。
.htaccessによる方法だと、.htaccessが使えない場合などには適用できません。
冒頭のソース例で示した様に
<?php echo "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
...
とすると
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
...
と出力されます。
参考:
http://www.google.co.jp/search?hl=ja&q=Parse+error%3A+syntax+error%2C+unexpected+T_STRING&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
(Google 検索結果:Parse error: syntax error, unexpected T_STRING)