使用@符号与DirectoryIterator中的ftp流

问题描述:

我使用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过,但给出了一些模糊的警告和不同的结果。所以我会先用本机函数进行测试。

我不说相信你可以使用DirectoryIteratorFTP客户

您可能希望了解如何使用ftp_rawlist得到的名单给定的目录