PHP FTP脚本本身可以工作,但是当成为WordPress插件的一部分时会失败

时间:2019-06-11 19:31:46

标签: php wordpress ftp

我有这个非常简单的PHP,可以通过FTP连接以获取文件。看起来像这样:

error_reporting(-1);
ini_set("display_errors", 1);

$ftp_server = "xxxx";
$ftp_user = "xxxx";
$ftp_pass = "xxxx";

$conn_id = ftp_connect($ftp_server); 

if (ftp_login($conn_id, $ftp_user, $ftp_pass)) 
{
    echo "Connected successfully as $ftp_user@$ftp_server<br>\n";

    ftp_pasv($conn_id, true);

    if ( ftp_chdir($conn_id, '/mydir') )
    {
        echo "Changed directory successfully<br>\n";

        if (ftp_get($conn_id, '/full/path/to/local.file', 'remote.file', FTP_ASCII))
        {
            echo "Got file successfully. No problems here<br>\n";
        }
        else
        {
            echo "Uh oh. Problems getting file<br>\n";
            print_r(error_get_last());
        }
    }
    else
    {
        echo "Couldn't change directory<br>\n";
    }
} else {
    echo "Couldn't connect as $ftp_user<br>\n";
}

// close the connection
ftp_close($conn_id);

使用该文件创建一个独立的PHP文件可以正常工作。它连接,登录并获取文件。完全没有错误。

现在,我采用完全相同的代码,完全不做任何更改,并将其放在WordPress插件中,并且不再起作用。相反,我得到了:

  

警告:ftp_get():php_connect_nonb()失败:第XX行/path/to/file/cron.php中的操作正在进行中(115)

     

警告:ftp_get():在第xx行的/path/to/file/cron.php中将类型设置为A。

我对php_connect_nonb警告做了很多搜索,他们都建议它与防火墙有关,但是当它是独立脚本时又如何工作?

有没有人对如何做到这一点以及为什么在放入WP时突然停止工作有任何逻辑推理?我完全没有主意。

1 个答案:

答案 0 :(得分:-1)

检查您的php.ini文件。搜索“模块”或“动态扩展”。确保其中的行extension=php_ftp.dll在其中。如果找到此行,但它前面有;,请删除它,因为它用于注释行。