0

非常に単純な PHP アプリを設計しました。localhost (XAMPP / Windows 7) で完全に動作し、アップロード先の Web サーバーでは完全に失敗します。失敗時に表示されるエラーは何も言わない。

サーバー構成が何であれ (多くのサーバーでテストされています)、アプリケーションを実行しようとすると、次のいずれかで終了します。

  • PHP エラー: unexpected T_STRING in .../template/template.html on line 1
  • HTTP エラー 500: Internal Server Error
  • 空のページ (エラー報告が無効になっていると仮定)。

ファイルtemplate/template.htmlは、いくつかの単純な PHP ステートメントを含む、正しいヘッダー、本文、および構造を持つ単なる通常の XHTML ファイルです。require次の関数でロードして解析します。

public static function renderPartial($view, $data = array())
{
    if(is_file($view))
    {
        if(is_array($data)) extract($data, EXTR_PREFIX_SAME, 'data');

        ob_start(); 
        ob_implicit_flush(false); 

        require($view);

        return ob_get_clean();
    }
    else die('File <strong>"'.$view.'"</strong> does not exist!');
}

これは、ビュー、サブビュー、またはテンプレートをレンダリングするために Yii (およびおそらく他の多くのフレームワーク) で使用される関数の私自身の非常に単純なバージョンです。アプリの多くの場所で使用しており、ローカルホストでは魅力的に機能します。

誰かがチェックしたい場合は、ここにライブバージョンがあります(そうあるべきです) 。ここでは、ローカルホスト上の私のローカル作業コピーから直接SVNエクスポートされたバージョンを含むzipアーカイブがあり、ここでは夢のように機能します(問題は解決しました -- 例は削除されました)

純粋な PHP で、または Yii フレームワークを使用して、多くの PHP アプリを開発してきましたが、このような状況は初めてだったので、非常にショックを受け、戸惑いました。これまで、自分のローカルホスト (XAMPP) でエラーなく実行されていたすべてのアプリケーションは、どの Web ホストでも問題なく実行されました。

どんなアイデアや助けも大歓迎です。

4

1 に答える 1

1

<? ?>template.html の最初の行に短いタグ (ドキュメント内の他のタグはすべて長い) があるため、Apache サーバーが PHP の短いタグ ( ) を許可するように設定されているかどうかを確認します<?php ?>。また、同じファイルの 27 行目で、echo コマンドの最後にあるセミコロンが 1 つありません<?php echo($alert); ?>でした。参考になるかわかりませんが、念のため。

よろしく、 ハイアワサ

于 2012-11-17T01:36:02.580 に答える