Hatena::ブログ(Diary)

modifiedの日記

2012-03-07

PHP の short_open_tag 爆発しろ。

PHPの short_open_tag の仕様がバージョンによってコロコロ変わるのでメモ。

まとめ

バージョン デフォルト変更可能備考
PHP 4.0.0 On PHP_INI_ALL "<?=" "<?" の両方に影響
PHP < 5.3 Off PHP_INI_PERDIR "<?=" "<?" の両方に影響
PHP 5.4 On PHP_INI_PERDIR "<?=" は常に使用可能 (設定を変更できない)

※ 一部、未検証です。

※ 一部サイトで、「5.4では short_open_tag ディレクティブが無くなる」というような書き方をしていますが、"<? " を使うかどうかの指定はできました。


備考、定数の説明

定数説明
PHP_INI_USER 1 このエントリは、ユーザスクリプトから設定可能
PHP_INI_PERDIR 2 このエントリは、.htaccessおよび httpd.confのVHostディレクティブ内で設定可能
PHP_INI_SYSTEM4 このエントリは、php.ini または httpd.conf (しかし、httpd.confのVHostブ ロック内では不可)で設定可能
PHP_INI_ALL 7 このエントリはどこでも設定可能

対策

  1. 誰が何と言おうと、設定がどうなっていようと、short_open_tag は使わない。
  2. XML 出力するときは Smarty を使う。

参考

http://www.php.net/manual/ja/ini.core.php#ini.short-open-tag

その他

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/modified/20120307/1331088724
リンク元
Connection: close