2009年02月05日

Parse error: syntax error, unexpected T_STRING in ○○○ on line 1 −1行目のエラーならばこれを疑ってみるべき。

PHP導入の最初の頃によく陥りそうな話。

PHPをHTMLに埋め込みで使っていて、かつ、HTMLをXHTMLで記述した場合に

Parse error: syntax error, unexpected T_STRING in ○○○ on line 1

みたいなエラーがでることがある。”line 1”というのがポイントでそれ以外の場合は本件には該当しないと考えてよい。

ご存知のようにXHTMLで記述する場合は、
<?xml version="1.0" encoding="utf-8"?>
という記述を文法にのっとれば1行目にする必要がある。

このとき、先頭の『<?』がPHPコードのオープンタグと勘違い
されてPHPのパースエラーが出ている訳である。

回避策としては、まずPHPコードのオープンタグに<?は使わず<?php を使うようにして、PHPの設定でショート・オープンタグ(<?)を無効にする設定にします。

.htaccess に記述する場合
php_flag short_open_tag Off

php.ini に記述する場合
short_open_tag = On

これでXmlの最初の一行の『<?』がPHPコードの開始と勘違いされなくて済みます。



posted by mtomiz at 16:20| 東京 🌁| Comment(10) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
ありがとうございます。
助かりました!
Posted by N at 2010年04月15日 21:00
詰まってました。助かりました!
Posted by at 2011年02月13日 16:53
無事エラーが出なくなりました。
どうもありがとうございました。
Posted by at 2011年05月13日 14:26
たすかりました!
ありがとうございます
Posted by at 2011年06月08日 12:54
海外サーバーに登録したのですが、エラーがでて困っていました。無事解決できました。感謝です。
Posted by posan@lenovoクーポン at 2011年09月23日 00:29
非常に助かりました!
ありがとうございます
Posted by もり at 2011年11月25日 00:51
php.iniのやつは
short_open_tag = Off
ですよね?
Posted by morph at 2012年01月20日 17:12
困っていましたが、おかげさまで解決しました。
ありがとうございました。
Posted by 助かりました at 2012年04月25日 09:55
1年ぶりにPHP書いてみたら、コレでハマりました笑

助かりました!ありがとうございます!!

(php.iniのshort_open_tagは「off」が正解ですね)
Posted by そん at 2013年01月05日 19:15
当該XHTML内でPHP組み込んでない場合、一行目の<?xml....行を削除しただけではだめなのでしょうか?

Posted by る at 2013年01月17日 08:46
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。