PHP構文内でHTMLのエスケープシーケンスがエラーになる

* 本ページはプロモーションが含まれています

PHP構文内にHTML記述する場合には、特殊文字はエスケープシーケンスを使う必要があります。

例えば、PHP構文内で、HTMLにてURLやパスを指定する場合

print(" <frame src=\"index.php\" name=\"head\" scrolling=\"no\">");

このように、HTML内の”は¥”で記述します。

それで、このような記述で、サーバーによって、正常に起動する場合と、エラーになる場合が発生しました。

エラーになる場合は、そのままのエスケープシーケンスが混入しているため、src=”index.php”…となるところが、src=¥”index.php¥”となっているのが原因です。
正常に動作するサーバーとエラーとなるサーバーをApache,PHPの設定で比較した所、short_open_tagが原因でありました。

# vim /etc/php.ini
....
short_open_tag = On  #<--OffからOnへ変更
....

エラーとなるサーバーでは、short_open_tag = Offであったため、これをOnの設定にし、Apacheを再起動したとこ、エラーが解消され、正常に動作となりました。