みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

syntax error, unexpected T_STRING

携帯の端末別にXHTMLを表示する書籍のサンプルコードを記載しましたが以下のようなエラーが発生しました。
Parse error: syntax error, unexpected T_STRING in /home/oeppu/public_html/xhtml.php on line 14
14行目は以下の部分です。
<?xml version="1.0" encoding="Shift_JIS"?>
ソースコードはShift-JISとEUCでそれぞれ試して見ましたが同じ結果でした。
初心者ですので根本的な部分が間違っているのかもしれません。ご指摘宜しくお願い致します。

/* xhtml_test.php */
<?php
// 内部文字コードを出力文字コードに変換するライブラリー
require_once 'output_encode.php';
// アクセス端末に対応したXHTMLのDOCTYPEを取得するライブラリー
require_once 'mobile_xhtml_doctype.php';
// 出力のバッファリングを有効にする
ob_start();
?>
<?xml version="1.0" encoding="Shift_JIS"?>
<?php echo mobile_xhtml_doctype(); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="-1" />
<titel>XHTML TEST</titel>
<body>
XHTML TEST
</body>
</html>
<?php
output_encode();
?>

/* output_encode.php */
<?php
function output_encode()
{
$str = ob_get_contents();
$output = mb_convert_encoding($str, 'SJIS-win', mb_internal_encoding());
ob_end_clean();
header('Content-Type: application/xhtml+xml;');
echo $output;
}
?>

/* .htaccess */
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation On
php_value mbstring.script_encoding SJIS
php_value mbstring.internal_encoding SJIS

投稿日時 - 2009-03-27 17:45:48

QNo.4831658

すぐに回答ほしいです

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

未検証ですが

php.iniのshort_open_tagをoffにする

ことで解決すると思います。

#XML宣言や処理命令(PI)がPHPスクリプトの開始と誤解されている。
#この変更に伴ってコードを修正する必要があるかもしれません。

##本題とは外れるが,個人的には直接XMLのコードを書かず,DOMDocumentを経由するのが好き。
##だが,libxmlにはこんな嫌な仕様が。
###http://pastaseca.blog119.fc2.com/blog-entry-42.html

投稿日時 - 2009-03-27 19:06:56

お礼

ご回答ありがとうございます。
現象の原因が非常に理解できました。
おかけで解決できました。

投稿日時 - 2009-03-27 23:12:33

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)