2010-11-21 9 views
0

私は、.phpのファイルに/library/というディレクトリにいくつかのデータを格納するアプリケーションを持っています。 です。 /library/config.phpinclude_pathを変更するか、各PHPファイルを先頭に追加

私の古いホスティングでは、libraryがインクルードパスに含まれていたので、どこでも実際のパスを提供することなくrequire('config.php')を行うことができました。

各.phpファイルを自動挿入してインクルードパスを更新する機会はありますか?

  • アプリは私がinclude_path
  • 中に既に存在しているのdirsのいずれかに直接アクセスできません php.ini
  • にはアクセスできませんフロントコントローラパターン
  • に従っていません。

    は、いくつかの状況があります

  • 私は使用できませんphp_flag include_path
  • 私は使用できませんphp_flag auto_prepend_file
  • いくつか.phpファイルはctrl+Hより.htaccess

他の方法で独自のルールを持っていると<? set_include_path…<?を置き換えますか?

編集:

私は何を探していますがのようなもののようになります。

RewriteCond %{REQUEST_FILENAME} !-F 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (^*\.php)$ /library/$1 [NC,L] 

答えて

0

(実行時にインクルードパスを調整するために、あなたがライブラリファイルを必要とするファイルの先頭にset_include_path()を追加php.iniまたは.htaccessファイルに触れる必要はありません)。

set_include_path(dirname(__FILE__).'/library'.PATH_SEPARATOR.get_include_path()); 

これは、ライブラリパスを現在のインクルードパスの前に置き、ファイルを直接使用できるようにします。 '/library'をライブラリパス(現在のファイルの場所との相対)に合わせて調整する必要があります。

+0

これは私の「ctrl + h」ソリューションです。他の? – takeshin

+0

私は上記を共通ファイルで一度実行し、それを必要とする他のすべてのファイルに含めることをお勧めします。これにより、何か変更があった場合(ライブラリのパスのように)、すべてのファイルに触れる必要がなくなるため、コードをもっとメンテナンスできるようになります。また、xml宣言と衝突するので、短いオープンタグ( '<?'の代わりに '<?php'を使用)を使用しないことをお勧めします。これは何らかの問題を引き起こす可能性があります。 – jwueller

0

ini_set()も禁止されていますか?これにより、include_pathも変更できます。

+0

'ini_set'も' set_inlcude_path'も無効になっていますが、ここには該当しません。 – takeshin

関連する問題