37

Linux サーバーに php 5.3.1 をインストールしたところ、タグを使用して記述していた古い作業がまったく機能しなくなりました。

私を助けてください..どうすればこれを解決できますか??

4

5 に答える 5

75

短いタグ( <? ?>) の使用はお勧めしません。完全な長さのタグ ( <?php ?>) を使用する必要があります。アプリケーションを移植可能にしたい場合、短い開始タグが別のサーバーで許可されていない可能性があり、そのためアプリケーションが壊れます。

一方、echo ショートハンド<?= $var ?>、php.ini の設定に関係なく常に使用可能であり、廃止されることはありません。代わりに使用できます<?php echo $var; ?>

最後の手段として、短いタグを有効にするにshort_open_tagは、次のいずれかの方法で ini ディレクティブを有効にします (ほとんどの場合、それらのすべてが機能するとは限りません)。

  • short_open_tag = Onphp.iniでディレクティブを設定します (推奨される方法)。

  • コードを呼び出しini_set("short_open_tag", 1);ます。

  • 次の行を .htaccess ファイルに追加します。

    php_value short_open_tag 1


デフォルトの動作については、次のとおりです。

------------------------------------------------
php.ini values : short_open_tag
------------------------------------------------

PHP 4, 5_0
 * Default behaviour   : on
 * php.ini-dist        : on
 * php.ini-recommended : on

PHP 5_1, 5_2:
 * Default behaviour   : on
 * php.ini-dist        : on
 * php.ini-recommended : off

PHP 5_3:
 * Default behaviour   : on
 * php.ini-development : off
 * php.ini-production  : off

そして、短い開始タグを思いとどまらせる理由:


<?このディレクティブは、PHP がと?>タグの間のコードを PHP ソースとして認識し、そのように処理するかどうかを決定します。
数年前から、短いタグ「ショートカット」
を使用せず、完全なタグ<?php?>タグの組み合わせを使用することが推奨されてきました。XML が広く使用され、他の言語でこれらのタグが使用されると、サーバーは簡単に
混乱し、間違ったコンテキストで間違ったコードを解析してしまう可能性があります。ただし、
このショートカットは非常に長い間機能しているため、現在も
後方互換性のためにサポートされていますが、使用しないことをお勧めします.

テンプレートの短い開始タグに関するこの拒否された RFC にも注意してください: http://wiki.php.net/rfc/shortags

于 2010-03-19T09:16:35.257 に答える
10

php.ini ファイルで short_open_tags を「オフ」に設定したようです。「オン」に設定して、Apacheを再起動してみてください。

于 2010-03-19T09:17:24.063 に答える
1

ほとんどの場合、PHP構成ファイルで短いタグをオンにする必要があります。構成がわからないと、どこにあるかわかりませんが、php.ini(おそらくのような場所)を探しています/etc/php.ini

そこでは、あなたが求めている設定はですshort_open_tags。PHPのすべてのコア構成設定については、ここを参照してください。ただし、他の人が述べているように、短いタグを使用することは最善の戦略ではない可能性があります。ここに理由(賛成と反対)の良い議論があります。

于 2010-03-19T09:18:46.613 に答える
0

If you use wamp or xamp, it's really easy to activate them. Just click on icon->php server->setting->allow short tag open

It's better to not use this functionality. For example xml use the same way to open header in docs.

于 2012-12-18T05:53:45.700 に答える
0

新しい構成では短いタグが許可されていない可能性があります。を使用するだけ<?php ?>です。とにかくそれはより良い練習です。

それでもそれらを使用したい場合は、short_open_tag指示することができます。また、短いタグが無効になっていると機能しないことにも注意してください。

これの主な理由は、インライン Xml タグを使用できるようにするためです。

于 2010-03-19T09:16:50.417 に答える