こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

windows環境でxamppのphpでunixパス設定

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の設定などを行う方法はあるのでしょうか?
有識者の方ご指導よろしくお願いいたします。

投稿日時 - 2007-12-08 20:29:54

QNo.3581904

すぐに回答ほしいです

質問者が選んだベストアンサー

>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");
と\自体をエスケープすればよいです。

投稿日時 - 2007-12-10 11:00:15

お礼

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

投稿日時 - 2007-12-11 00:51:36

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

相対パスで読み込むようにしておくか、
__FILE__ などを利用して、ベースのディレクトリを定義しておけば楽かと。

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

投稿日時 - 2007-12-10 15:08:44

あなたにオススメの質問