- ベストアンサー
ローカルとリモートでのパス区切り文字の違いについて
- パス区切り文字の違いによるコーディングの問題について相談です。
- ローカルでは「¥」を使い、リモートでは「/」を使う必要があります。
- どのようにしてパス区切り文字の違いに対応すれば良いのか教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 DIRECTORY_SEPARATOR でPHPが稼働しているOSの区切り文字が取得できますがいかがでしょうか。
その他の回答 (4)
- agunuz
- ベストアンサー率65% (288/438)
>sqlite PDOのDSN接頭辞では絶対パスの入力を求めてくるので、 >そこだけは絶対パスで書いてます。 DSNこそ「データベースを扱う全部のスクリプトで共通に読み込む」ファイルに書くだけですね。 #common.incでなければdb.incとかww たとえ(SQLiteでなく)MySQLだったとしても、ローカルのテスト環境と本番環境で同一ということはまずありませんから。逆に「あちこちのスクリプトに書いている」のであれば、そっちの方がマズイ気がします(汗
お礼
回答をありがとうございます。 参考にさせて頂きます!
- muuming2001
- ベストアンサー率23% (202/847)
私もVMwareにlinux入れて仮想サーバ立ててやってます。
お礼
回答をありがとうございます。 >VMwareにlinux入れて仮想サーバ立ててやってます。 参考になりました。ありがとうございます。
- agunuz
- ベストアンサー率65% (288/438)
ほとんど「/」だけで書いてます。 私の場合は、そもそも「フルパス(サーバパス)」で記述しなければいけない場面を作りません。どうしても必要な場合には、全部のスクリプトで読み込む共通部(common.incとか)で定義して使います(サーバが変われば、その部分だけ書き換える)。 まぁそのcommon.incでdirname(__FILE__)を元に生成してもいいんでしょうけど・・・
お礼
回答をありがとうございます。 (こちらにお礼をするのを忘れておりました。失礼しました。) >ほとんど「/」だけで書いてます。 >そもそも「フルパス(サーバパス)」で記述しなければいけない場面を作りません。 私も似たような考え方でコーディングをしているのですが、 sqlite PDOのDSN接頭辞では絶対パスの入力を求めてくるので、 そこだけは絶対パスで書いてます。 (そんなsqliteなんて使うな、というお話は無しでお願いしますw)
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 開発環境(コーディング等)はWindowsですが、VMを利用してLinuxサーバーで検証してますよ。 よって、自分は使ってないです。
お礼
回答をありがとうございます。 >VMを利用してLinuxサーバーで検証 そ、そんな方法もあるんですね。。。!! WinとLinuxの挙動の違いというのは、 パスの区切り文字以外の所にも表れるでしょうから、 そうしたことも考慮すると、 検証も、「本番と同じLinux環境で」出来たら、 やはり安心ですよね。 私も今後、検討してみたいなと思います。
お礼
回答をありがとうございます。 あぁ~、そういうの、ありましたね~!w PHPユーザの多くが、 ローカルはWindows、リモートがUnix系OS、 という環境でしょうから、 この、パスの区切り文字の違いは、 皆さん、何らかの形で克服しているものと思っておりましたが、 その解決策の有力候補が、まさか、この、 DIRECTORY_SEPARATOR だったとは!?w こんな、いかにもなモノが用意されているくらいですから、 おそらく、このDIRECTORY_SEPARATORを使うというのが、 ベストな作法なのでしょうが、、、 それにしても、、 長い。。。(パス文字は1文字だというのに。。。こやつ、長すぎる。。。) あんまり使いたくない。。。w まぁ、これを、さらにdefine()で、短く定義しなおして使う なんていうのもアリなんでしょうけれど、 そういうのは、あまり好きではないかなぁ。。。とか、ゴニョゴニョ言っちゃう。 っていうか、皆さんは、本当にこれを使っているんでしょうかね?!w