0

https://stackoverflow.com/a/10743881/1303216

私は現在これに取り組んでいます。私はコードをコピーして貼り付け、それを機能させるためにいじくり回してきました。私のサーバーのウェブルートには、secretfolderというフォルダーがあります。public_htmlには、非表示のPDF(コピーされたコード)をフェッチするためのスクリプトを含むPHPファイルがあります。問題は、ファイルが破損し続け、メモ帳でファイルを見ると、

failed to open stream: No such file or directory in <b>/home/user/public_html/herp.php

public_htmlの外側を指すようにするにはどうすればよいですか。私は相対的なファイルパスを完全には理解していないので、いくつかの助けがあれば素晴らしいでしょう。

私は標準のランプを使用しています

短い質問

Webルート上に直接ある/secretfolderを指す必要があるPublic_htmlのPHPファイルからの相対ファイルパスは何でしょうか?

ちなみに、私は$ file='/path/to/file/outside/www/secret.pdf'を試しただけではありません。しかし、私はそれが実際に使用されていると思われるものを知る必要があります。

アップデート

私が使用していたファイルパスは/secretfolder/Pay%20Stub%20View.pdfでした

%20(スペース)は何らかの理由でそれを壊していました。今は問題なく動作します。ちょっと馬鹿げた気がします。なぜこれが起こるのか誰かが説明できますか?私が知っているのはそれがするということだけです。

4

1 に答える 1

1

簡潔な答え

ファイルシステムのレイアウトがわかりません。しかし、PHP/Apache はロットにアクセスできます (適切なファイル許可を前提としています)。私は相対パスを使用する傾向があります。これは、開発環境から本番/テスト環境に手間をかけずに簡単に移行できるためです。

より長い答え

サーバーにファイルはあり/home/user/public_html/herp.phpますか?

他の質問に答えるために、相対パスは..ディレクトリの表記を使用します。これは、サブディレクトリ (下のブランチ) を意味します。ファイルシステムをツリーとして表示するだけです。葉はファイルです。さまざまなブランチがディレクトリです。現在のディレクトリ/ブランチを保持しているディレクトリ/ブランチに到達するには、..表記法を使用します。

お望みなら、トランクに行くこともできます!それが役立つことを願っています。

于 2012-06-01T16:03:26.107 に答える