我使用DirectoryIterator類來列出ftp內容: $ a = new DirectoryIterator('ftp:// user:password @ host');使用@符號與DirectoryIterator中的ftp流
如果有一個在登錄「@」字符,我得到一個錯誤: 未能打開目錄:操作失敗
我怎樣才能在登錄逃脫@符號?
我嘗試: %40, + \ @
我使用DirectoryIterator類來列出ftp內容: $ a = new DirectoryIterator('ftp:// user:password @ host');使用@符號與DirectoryIterator中的ftp流
如果有一個在登錄「@」字符,我得到一個錯誤: 未能打開目錄:操作失敗
我怎樣才能在登錄逃脫@符號?
我嘗試: %40, + \ @
RFC1738要求像@
這樣的特殊字符應該在ftp://方案中被urlencoded。因此使用%40
代替密碼分割中的@將是正確的。
但是你只是想在主機名前加上user:[email protected]
前綴。那些不需要轉義。而且它本身已經通過FTP URL的fopen封裝支持:
$d = opendir("ftp://anonymous:[email protected]/pub/");
print readdir($d);
以上的ftp:// URL對我的作品與DirectoryIterator
過,但給出了一些模糊的警告和不同的結果。所以我會先用本機函數進行測試。
我不說相信你可以使用DirectoryIterator
爲FTP
客戶
您可能希望瞭解如何使用ftp_rawlist得到的名單給定的目錄