【问题标题】:Checking availability of the files in the FTP using pattern使用模式检查 FTP 中文件的可用性
【发布时间】:2018-05-27 04:07:18
【问题描述】:

我想检查 FTP 服务器中文件的可用性。如果不退出,则会发送一封自动邮件。此代码可以正常工作,以便在变量中给出确切的文件名,但我想使用 (%) 显示如下: $filename = 'temp%',仅匹配百分比前文件名的第一部分。如何在 PHP 中使用它?

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

$filename = 'temp%';
// try to check if files exist 
if (!file_exists($filename)) {

    //Sending Email
    $htmlbody ="
    <head>
    ...";
    // ...
}

【问题讨论】:

标签: php ftp


【解决方案1】:

您必须列出远程文件并扫描检索到的列表以查找与您的模式匹配的文件。
Listing files on FTP server using PHP glob is not working


一些 FTP 服务器确实允许通配符直接与列表命令一起使用。请参阅FTP directory partial listing with wildcards(尽管请注意,它是一个非标准扩展,但实际上得到了广泛的支持)。

在这样的 FTP 服务器上,可以这样做:

if (empty(ftp_nlist($conn_id, "temp*")))
{
    echo "No such file";
}

如果您的 FTP 服务器不允许使用通配符,或者您确实想依赖非标准功能,则必须自己过滤文件:

if (empty(preg_grep("/^temp/", ftp_nlist($conn_id, ""))))
{
    echo "No such file";
}

【讨论】:

    猜你喜欢
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多