プロが教えるわが家の防犯対策術!

phpソース内で include(/www/aaa/test.php); がそもそもありまして、そのソースを改造することなく
Windowsのローカル環境で(xamppの最新版を使用)インストールしたいです。
WindowsではUnixのパス(/は最も上位のフォルダからのパス)は理解出来ないと知りまして、windows用に include(\www\aaa\test.php); に改めても、引き続き同じエラーが発生し、⇒Warning: include( est est.php)その上、testの文字"t"が消えて、個人的に混乱しています。phpソースに変更を加えない方法で、Windowsローカル環境下で、apacheの設定やphpの設定などを行う方法はあるのでしょうか?
有識者の方ご指導よろしくお願いいたします。

A 回答 (2件)

>include(\www\aaa\test.php);


予測ですが、
include("\www\aaa\test.php");
こう書いてたりしませんでしょうか。

PHPに限らずですが、ダブルクウォートに括られた文字列は「\」でエスケープされます。
上記場合ですと\w,\a,\tがそれで一文字と判別されます。
Warning: include( est est.php)
となるのは\tがタブ文字と判別されてるからでしょう。

解決策としては
include('\www\aaa\test.php');
とするか、
include("\\www\\aaa\\test.php");
と\自体をエスケープすればよいです。
    • good
    • 0
この回答へのお礼

そうですね。エスケープされていたんですね。
ありがとうございました!
そもそも論で申し訳ございませんが、私の質問中で
>WindowsではUnixのパス(/は最も上位のフォルダからのパス)は理解出来ないと知りまして
これに錯誤がありました。
include のパス区切り文字は / でも \ でもどちらでも問題なく動くようです。あと、今回のミスは単純なapacheの設定とDirectoryの配置ミスでした。

お礼日時:2007/12/11 00:51

相対パスで読み込むようにしておくか、


__FILE__ などを利用して、ベースのディレクトリを定義しておけば楽かと。

define('BASE_DIR', dirname(__FILE__) . '/');
include(BASE_DIR . 'test.php');
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!