2016-04-19 22 views
0

いくつかの理由で私はいくつかのデータをリムーバブルストレージ(すなわちUSBスティック)に保存したいと思っています。私は、WAMPパッケージがインストールされているとそれは.../www /フォルダスクリプトがファイルを編集することができますなど私は私のサーバーが/リムーバブルストレージ内の別のフォルダからファイルを読み書きすることができるようにしたい。Apache/PHP:Windowsの絶対パスを使用しているfile_put_contents? (可能?)

私は既に相対パスを試しましたが、www/以外のフォルダで動作することが確認できます(潜在的にはセキュリティ問題の原因です)。しかし、私のリムーバブルストレージはWindowsではE:\ドライブなので、そこに書き込むには絶対パスを使用する必要があります。私は(パスが動作しないため、または別のストレージへの書き込みが禁止されているため、書き込みのフェイルが発生した場合、最初の異なるへC:\に)直接

file_put_contents("C:\existing\path\copied\from\explorer\new_file.txt","Stage 3, successfully written"); 

のようにWindowsの絶対パスを使用しようとした、それが失敗しました。

だから、まったく可能ですか? Windowsエクスプローラで書かれているように、パスの代わりに何を使うべきですか?または、私はこれを達成するために別の関数を使うべきでしょうか?または、Apacheの設定を使用してそのパスにいくつかの別名を付けますか?

ポイントは、リムーバブルストレージは、読み取り/書き込みの瞬間を除き、いつでも安全に取り外し可能である必要があります。 ÁlvaroGonzálezへ

PSのおかげで、私はちょうどエクスプローラからコピーされた、私の絶対パスで\シンボルを脱出するのを忘れていることを理解しました、それに書き込む理由です直接失敗しました。

+0

[別のドライブのファイルにアクセスする]の可能な複製(http://stackoverflow.com/questions/10311674/accessing-file-of-another-drive) –

+0

取り外し可能なドライブにエイリアスを追加するのは危険です。そこにはないApacheは起動しません – RiggsFolly

+2

私はWindows上で開発するすべての単一のPHPプロジェクトで絶対パスを使用します。彼らは完璧に動作します。私は '/'と '\\'の両方をディレクトリセパレータとして使うことができるので、実際はWindows自体よりもうまく動作します。質問を編集して*どのコード*が失敗し、*どのような失敗*が失敗するかを説明してください。空白の画面が表示された場合は、エラーメッセージを表示するようにPHPを設定する方法を調べてください。 –

答えて

1

ちょうど小さな構文問題:

var_dump("C:\existing\path\copied\from\explorer\new_file.txt"); 

...版画のようなもの:

string(46) "C:xisting\path\copiedromxplorer 
ew_file.txt" 

を...あなたは、二重を使用するのに十分な不運してきたので、引用符付きの文字列と既存のescape sequences

  • \eエスケープB)
  • \fフォームフィード(16進数の0℃)
  • \n改行(16進数の0A)

いくつかの有効な代替案:

  • 'C:\existing\path\copied\from\explorer\new_file.txt'
  • "C:\\existing\\path\\copied\\from\\explorer\\new_file.txt"
  • "C:/existing/path/copied/from/explorer/new_file.txt"
1

WAMP/www /ディレクトリに別のディレクトリを作成し、必要な場所にシンボリックリンクを作成します。いくつかの良い読書:http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/

+0

再び、リムーバブルドライブが削除された場合、この方法はどうなりますか? – RiggsFolly

+0

私はしばらく私を躊躇させてしまったので、先に進んでテストしました:)もちろん、スティックが差し込まれていないとターゲットは使用できません。しかし、シンボリックリンク自体は削除されません。 – bugnumber9

+0

スティックが入っていることを証明するためのテストを工夫しなければなりません – RiggsFolly

関連する問題