short_open_tag=Onで起きていた弊害を軽く検証する(PHP5.3/PHP5.4)

最初に結果だけ書く

  • PHP 5.3
    既知の通り。
  • PHP 5.4.3
    PHPのファイルが <?xml で始まる場合にPHPとして扱ってエラーになるというあの問題は起きなかった。

詳細

  • 前提:
    • Apacheの設定で .php .html の各ファイルを PHP として扱っている
    • 使ったXMLファイル → こちらの例2
      XMLファイルを shorttag.php としてサーバーに保存し、ブラウザからアクセス・表示した。
  • PHP 5.3 で short_open_tag = On
    • short_open_tag = On にした場合の有名な弊害は PHP 5.3 でも健在。
    • 拡張子が .php または .html かつ ファイルの内容が <?xml で始まる場合、エラー。

      PHP Parse error: syntax error, unexpected T_STRING in /var/www/shorttag.php on line 1
    • 対策
      Apacheでそのファイルの拡張子をPHPとして扱わないよう設定する
      または
      xml宣言をechoを使って書き換える
      <?xml version=”1.0″ encoding=”Unicode” ?>

      <?php echo ‘<?xml version=”1.0″ encoding=”Unicode” ?>’ ?>
  • PHP 5.4
    short_open_tag が廃止され、ショートタグが常時ONになった PHP 5.4。
    PHP 5.4.3 では上記の問題は起こらず、XMLファイルとして処理された。

Comments (1)

[…]  http://www.coalice.info/blog/programming/php/920.html […]

Leave a comment

Your comment

*