在php中使用FTP查找目录时出现问题


Trouble finding the directory using FTP in php

我想试试这个

链接:如何使用PHP FTP功能检查服务器上是否存在文件夹?告诉我我的代码是否正确;

我似乎找不到文件夹,它与失败的相呼应

示例ftp帐户是

用户:admin@mywebsite.com

通过:name@pasword

ftp文件根为:/home/mywebsite/public_html/admin

我想找到的路径文件夹是:public_html/admin/userfiles

我在cpanel 的管理员上设置了路径ftp帐户路径

if(is_dir('ftp://admin@mywebsite.com:name@pasw0rd@mywebsite.com/userfiles'))
{
 echo 'found';
}
else
{
 echo 'failed';
}

以这种方式使用'ftp://`有一些先决条件:

  • PHP指令allow_url_fopen必须设置为true
  • 目标服务器必须支持passive ftp

假设这两种情况都存在,那么您的URL必须是准确的。约定为ftp://name:password@server.example.com/folder。您的URL中似乎有一个伪造的:name@

ftp://admin@mywebsite.com:name@pasw0rd@mywebsite.com/userfiles'
                         ^^^^^^

FTP函数检查目录是否存在

<?php
function ftp_is_dir( $dir ) {
    global $ftpcon;
    // get current directory
    $original_directory = ftp_pwd( $ftpcon );
    // test if you can change directory to $dir
    // suppress errors in case $dir is not a file or not a directory
    if ( @ftp_chdir( $ftpcon, $dir ) ) {
        // If it is a directory, then change the directory back to the original directory
        ftp_chdir( $ftpcon, $original_directory );
        return true;
    } 
    else {
        return false;
    }        
} 
?>