ホーム > php > php で <? (クエスチョン)の後ろにphpを忘れると動かない (php.ini の short_open_tag)

php で <? (クエスチョン)の後ろにphpを忘れると動かない (php.ini の short_open_tag)

2009 年 10 月 21 日 tdtsh

FAQですが、備忘録です。

久しぶりにWEBサーバをphp5.3で構築して、古いWEBサーバのWEBアプリケーションを移行したら、所々のページでロジックが動かない。

やっつけ仕事で作った社内ツールだったのでHTMLとロジックがスパゲッティになっているコードが殆どな訳ですが、よくコードを見てみたら、時折 <? が混じっていた。<?php が正解なんだけど、たまーに忘れているわけです。

古いバージョンでは問題なく動いてたし、phpの事忘れかけてたので、暫くきづかなかったです。

<?がサポートされなくなったのは、どのバージョンからなんだろ。php5以降なのかな。

<? は検索しにくいから、なかなか調べにくいのではないかと。

2009-10-26 追記
php.ini の設定によるものでした。
short_open_tag = Off/On
多分ですが、構築時の元になったphp.iniのデフォルト値の違いが原因なのでしょうね。

カテゴリー: php タグ:
  1. ぽち
    2009 年 10 月 22 日 13:40 | #1

    まさに同じ日に、同じ問題でハマっていました。orz

    テストサーバでは動くのに、本番サーバーで動かない。
    いろいろ調べたらコレでした。

    phpinfoでは同じ5.2.11だったのになぁ…。

  2. tdtsh
    2009 年 10 月 22 日 21:56 | #2

    php4の頃、php5からはそーなると言っていた気がします。
    でも、環境によっては5でも動くんですよね。

    同じバージョンでも再現するとは知りませんでした。
    コンパイルの仕方なのか、設定ファイルなのか。

  3. ちゃと
    2009 年 10 月 26 日 14:21 | #3

    php4の頃は、設定ファイルで切り替えできた気が。

  4. tdtsh
    2009 年 10 月 26 日 15:54 | #4

    やっぱphp.iniかぁ。

    これですね。
    short_open_tag = Off/On

    http://shoyu-ramen23.jugem.jp/?eid=125

コメントは受け付けていません。