2011-06-02 28 views
1

我使用DirectoryIterator類來列出ftp內容: $ a = new DirectoryIterator('ftp:// user:password @ host');使用@符號與DirectoryIterator中的ftp流

如果有一個在登錄「@」字符,我得到一個錯誤: 未能打開目錄:操作失敗

我怎樣才能在登錄逃脫@符號?

我嘗試: %40, + \ @

回答

2

RFC1738要求像@這樣的特殊字符應該在ftp://方案中被urlencoded。因此使用%40代替密碼分割中的@將是正確的。

但是你只是想在主機名前加上user:[email protected]前綴。那些不需要轉義。而且它本身已經通過FTP URL的fopen封裝支持:

$d = opendir("ftp://anonymous:[email protected]/pub/"); 
print readdir($d); 

以上的ftp:// URL對我的作品與DirectoryIterator過,但給出了一些模糊的警告和不同的結果。所以我會先用本機函數進行測試。

1

我不說相信你可以使用DirectoryIteratorFTP客戶

您可能希望瞭解如何使用ftp_rawlist得到的名單給定的目錄