2011-10-23 19 views
0

echo <?=foo()?>のPHPの短い構文は、short_open_tagsが有効な間は機能しません。私はCentos6を実行しているよ:PHP <?=foo() ?>が動作しない

Linux pau.pauperis.com 2.6.35.11-83.9.amzn1.x86_64 #1 SMP Sat Feb 19 23:42:04 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux 

PHP 5.3:

PHP 5.3.8 (cli) (built: Sep 25 2011 11:33:49) 

のApache 2.2:

Server version: Apache/2.2.20 (Unix) 

.phpファイルでecho "<pre>";print_r(ini_get_all());die();を配置するには、以下を与える:

 
    [short_open_tag] => Array 
     (
      [global_value] => 1 
      [local_value] => 1 
      [access] => 6 
     ) 

phpinfo();伝えshort_open_tagsonです:

egrep -Ri 'short_open' . 
./php.ini:; short_open_tag 
./php.ini:short_open_tag = On 

感謝の答えのためにたくさん! 私はPHPコードが解析されていないと言っています。それは私がApacheのためのPHPサポートを持っていなかったので動作します。 short_open_tagsを無効にしてwrittingを試してみてください。 <? echo foo() ?>は問題なく動作します。 Apacheのログにはエラーはありません。

私は短いタグはお勧めしませんが、私は変更できない大きなCodeIgniterプロジェクトで使用されていることを知っています。 anyoenは何が失敗するか知っていますか?

Thx in advanced!

+10

「機能しない」と定義します。あなたの質問は実際に起こっていることを述べていません。 –

+2

エラーは何ですか?あなたが私たちに示したことは、うまくいくはずです:http://codepad.org/74Gtq53l –

+1

'foo()'は印刷可能な値を返しますか? '<?php echo foo(); ?> '仕事? – JJJ

答えて

2

ローカルフラグは、phpinfo()があなたに約束したものと異なる場合があります。 PHP設定は、.htaccessまたは.user.iniファイルで上書きされます。

が実際に有効であるプローブに、あなたのテンプレートスクリプトでこれを追加します。

<?php print_r(ini_get_all()); ?> 

ここに誰もがあなたのシステム上で何が起こっているのか教えすることは不可能です。これを自分でデバッグする必要があります。

関連する問題