2010-06-16 76 views
1

如果我不知道公共網頁目錄,有沒有辦法我的腳本能夠確定web目錄,使腳本會知道將文件上傳該目錄?使用ftp_ *,我如何確定公共html目錄?

+0

編輯您剛纔的問題,而不是創造了同樣的事情,一個新的... – animuson 2010-06-16 08:30:22

+0

@animuson:這是一個不同的問題... – Rob 2010-06-16 08:41:55

+0

他們可以很容易地被組合。 – animuson 2010-06-16 08:48:07

回答

3

如果我不知道公共網頁目錄,有沒有辦法我的腳本可以確定網絡目錄,以便腳本知道將文件上傳到哪個目錄?

如果您正在討論使用FTP確定要連接到的遠程主機的Web根目錄,那麼答案是否定的,絕對不是。

您使用的登錄可以有一個根設置從什麼虛擬主機(S)在服務器上配置完全不同的FTP帳戶。他們沒有任何關係,也沒有辦法互動。

通常會有一些重疊(例如FTP目錄是像/htdocs/domain.com/但沒有模式,你可以依靠。

0

你wan't知道腳本運行的機器的文檔根?在這種情況下,只需使用$ _SERVER ['DOCUMENT_ROOT']。

我不知道如何從遠程主機接收此類信息(如果可能的話)

+0

我需要遠程主機文檔根目錄 – Rob 2010-06-17 04:40:35

1

你希望有一個「商業上可行」的辦法,或者你想學嗎?這個答案適用於第二種情況:)

您可以通過FTP上傳一個帶有特殊名稱的文件(例如,fjskjfakdjfklajf.txt)(您的PHP腳本也可能會這樣做,例如一些捲曲調用)。然後,您可以運行另一個PHP腳本,它將嘗試遍歷文件系統並查找該文件。您需要列出每個目錄的內容(請參閱opendir),並檢查每個條目是否是目錄或文件。如果它是一個文件,並且它是你的文件,那麼你喜歡FTP根目錄。您可能對服務器的訪問權限有限,因此搜索操作可能不會持續太久。您可以從您的腳本所在的當前目錄開始,嘗試下降到每個目錄,然後移至'..'

您當前的目錄是:$ currentDir = dirname(FILE);

+1

我認爲你可以稍微逆轉一下問題:假定FTP目錄是可以在Web上查看的,但是您不知道Web路徑。我認爲OP意味着一個FTP目錄是Web根目錄,但他不知道哪一個。在這種情況下,您可以將測試文件上傳到dir,通過http://example.com/fjskjfakdjfklajf.txt進行測試,如果找不到,請將其移至另一個目錄並重復,直到找到。 – 2010-06-22 17:34:59

+0

+1這是最接近的方法。我認爲不可能做得更好。 – 2010-06-24 21:20:18

+0

難怪共享主機出現問題時,人們會以各種可以想象的方式濫用系統。 – 2010-06-25 16:02:01

0

Rob -

您是否只能通過FTP訪問服務器?

你已經可以訪問Web根(或方式來增加PHP腳本),但想知道他們是完全合格的路徑?

如果第二個問題的答案是肯定的,你可以做@Treur建議的事情,然後安裝一個返回DOCUMENT_ROOT值的php腳本,然後從你的FTP客戶端使用它。

我想知道你在想什麼做的,是什麼情況,會有所幫助。 :)