2009-04-04 20 views
3

私はPHPプロジェクトを引き継いで、私はそれを私の開発ボックスで動かそうとしています。私は開発者であり、システム管理者ではないので、問題を解決するには問題があります。PHPにさまざまな種類のファイルを含める

以前の開発者は.hファイルを使用してPHPを組み込みました。私の現在の構成は、その.hファイルをとり、それを実行せずに含めています。私のapache設定(またはそれは私のphp.iniですか?)で探す必要がありますか?

編集:私は以下のコメントの1を読んだときにクリックした

何か。コードはASPスタイルタグ "<?"を使用しています。私はphp.iniのオプションをオンにしています。phpinfo()によれば、それは有効になっていますが、apacheはまだコードをテキストとして含むだけです。

私はちょうどそれをチェックし、完全なPHPタグ "<?php"でコードを実行すると、問題が解決されます。それを言って、私はまだそれが他の方法で動作するようにしたいと思います。

私は最新バージョンのMacBookでこのコードを実行しています。 PHP 5.2.6、postgresql 8.3、apache 2.

コードはステージングサーバー上で動作しますが、違いは何かわかりません。

EDIT

Durrr ...私は、php.iniで有効にshort_open_tagsを持っていませんでした。

+0

私はあなたが別のサーバーにインストールして、基本的にダウンロード可能ではないファイルを.H作るのを忘れた場合に簡単にファイルを読むことができるいくつかのいずれかを推測するのは少しであるため、それらを変更しますテキストのように扱うないようにApacheを伝えることを忘れあなたが言うとき、「それを含む」 – Thomaschaaf

+0

ファイルは、ユーザーが(例えば)site.com/somepage.php、その後、somepage.php問題ANは、(「whatever.h」)コマンドに行く意味ですか?あなたは実際にsite.com/whatver.hに行くのですか? – Kip

+0

キップ - 後で。インクルードファイルは、公開ウェブサイトの外にあるので、彼らがダウンロード可能であることのリスクがあるじゃない - のinclude_once(「whatever.h」) – jeffkolez

答えて

6

あなたが含まれている.hファイルが、開かれた "<?php"タグなしでPHPコードを開始するのは問題でしょうか?

includeからドキュメント:ファイルが含まれている場合

、解析は、対象ファイルの先頭でPHPモードから出て、HTMLモードに低下し、そして最後に再び再開します。この理由のため、PHPコードとして実行すべき対象ファイル内のコードはvalid PHP start and end tags内に封入されなければなりません。

eval(file_get_contents("file.h")); 

は個人的に、私はいつでも私ができるevalのを回避しようと、時には:

2

PHPはインタープリタ言語なので、ファイルを実行せずに 'インクルード'できません。 '.h'は単なるファイル拡張子なので、前のコーダーではPHPを '.h'ファイルに入れているかもしれませんが、これはPHPです。

問題の詳細については、こちらをご覧ください。

+0

ドンが正しいです。 include、include_once、require、およびrequire_onceはすべて、ターゲットファイルを実行することによって機能します。 PHPには「実行しない」という概念はありません。彼が言っていることは正確であれば – Kalium

1

あなたは.htaccessファイルを使用して追加することができます。


編集

/path/to/include-file.h

はphp_valueのauto_prepend_file私はちょうどその.htaccessファイルを読みましたPHPのモジュール版でのみ動作します。

1

すべてを.php拡張子に変更する必要があります。しかし、それらを.hのままにしておく場合は、Apacheでマッピングを変更します。これはPHPではなく、適切なインタプリタを通してファイルを実行するApacheです。 PHPエンジンは、渡されたものを処理します。

+0

は、彼はPHPファイルをロードしていますし、それが(「whatever.h」)コマンドが含まれないので、Apacheの設定があるかは重要ではありません。 – Kip

+0

質問を読み直し、それは明確ではないのですが、私は多分あなたは正しいと、ユーザーが実際に – Kip

+0

いいえ、私はsite.com/index.htmlするつもりですがsite.com/whatever.hために起こっていると思います。 apache configは.htmlファイルをPHPとして実行し、include_once( "whatever.h")を実行しています。私はまだすべての.hファイルを変更したくありません - それらの多くがあります。サイトの書き直し作業中です。 – jeffkolez

0

includeおよびrequireは、インクルードファイルを実行します。 readfileを使用している場合、PHPコードとして扱わずにファイルを単にエコーします。

-1

.hファイルが<?phpディレクティブを「行方不明」されている場合は、あなたから切り替えるために有していてもよいようなものに含まちょうど選択がありません。

関連する問題