プロが教える店舗&オフィスのセキュリティ対策術

携帯の端末別に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

A 回答 (1件)

未検証ですが



php.iniのshort_open_tagをoffにする

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

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

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

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

お礼日時:2009/03/27 23:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!