我使用此代码来访问目录。
$location = 'files/';
$pictures = glob($location . "*.png");
Run Code Online (Sandbox Code Playgroud)
我想使用 FTP 访问远程路径
$location = opendir('ftp://user:password@host_name/files');
$pictures = glob($location . "*.png");
Run Code Online (Sandbox Code Playgroud)
我的 FTP 目录访问代码无法正常工作。
PHPglob函数不支持 URL 包装器:
注意:此功能不适用于远程文件,因为要检查的文件必须可以通过服务器的文件系统访问。
唯一可靠的方法是列出与通配符匹配的文件,即使用 PHP FTP 函数列出所有文件并在本地过滤它们:
$conn_id = ftp_connect("ftp.example.com") or die("Cannot connect");
ftp_login($conn_id, "username", "password") or die("Cannot login");
ftp_pasv($conn_id, true) or die("Cannot change to passive mode");
$files = ftp_nlist($conn_id, "/path");
foreach ($files as $file)
{
if (preg_match("/\.png$/i", $file))
{
echo "Found $file\n";
}
}
Run Code Online (Sandbox Code Playgroud)
(glob无论如何,如果它支持 URL 包装器,这就是内部要做的事情)
一些(大多数)FTP 服务器允许您直接使用通配符:
$conn_id = ftp_connect("ftp.example.com") or die("Cannot connect");
ftp_login($conn_id, "username", "password") or die("Cannot login");
ftp_pasv($conn_id, true) or die("Cannot change to passive mode");
$files = ftp_nlist($conn_id, "/path/*.png");
foreach ($files as $file)
{
echo "Found $file\n";
}
Run Code Online (Sandbox Code Playgroud)
但这是一个非标准功能(虽然得到广泛支持)。
有关详细信息,请参阅我对使用通配符的 FTP 目录部分列表的回答。
| 归档时间: |
|
| 查看次数: |
3051 次 |
| 最近记录: |