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コードの開始と勘違いされなくて済みます。
この記事へのトラックバック


助かりました!
どうもありがとうございました。
ありがとうございます
ありがとうございます
short_open_tag = Off
ですよね?
ありがとうございました。
助かりました!ありがとうございます!!
(php.iniのshort_open_tagは「off」が正解ですね)