スクリプト内で include_path を追加する。

以前、PHP の require や include を指定する際に、相対パスで、親パス(../)を指定しようとしたところ、エラーになってしまった。ので、Windows でも UNIX系でもうまく動くような絶対パスの指定を行った。 > http://sfi.hamazo.tv/e1317213.html

で、絶対パスを指定することで、回避していたのだが、simpletest の導入など、いろいろ考えていたときに、スクリプト単位でパスを追加するほうが 都合がいいんじゃないかという状況になってきた。

で、調べてみました(というか、思い出せなかったので、検索。)、その設定箇所は

php.ini (他にも .htaccess など) の include_path


でした。あくまでも、全体に設定するのではなく、そのスクリプトだけで指定したかったので、そうなると、こうなります。

ini_set('include_path', '../add_lib');


ただ、さっき調べたときに、専用のコマンドも見つかりました(PHP 4.3.0 以降)

set_include_path('../add_lib');



上のコマンドは、あくまでも include_path の設定なので、そのまま使うと include_path に上書きしてしまう(それまでの設定が使えなくなる)ので include_path に追記 となると、書き方は下のようになります。

set_include_path(get_include_path() . PATH_SEPARATOR . '../add_lib');


で、話を戻して、Windows でも UNIX でも使えるように絶対パスで指定したいので、これが完成形(?)

set_include_path(get_include_path() . PATH_SEPARATOR . str_replace('\\', '/', dirname(__FILE__)).'/../add_lib/');


もっと書くと、

set_include_path(get_include_path() . PATH_SEPARATOR . realpath(str_replace('\\', '/', dirname(__FILE__)).'/../add_lib/'));


かな。ながーい。



同じカテゴリー(PHP)の記事

上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

写真一覧をみる

削除
スクリプト内で include_path を追加する。
    コメント(0)