Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP FTP脚本本身就可以工作,但作为WordPress插件的一部分时失败_Php_Wordpress_Ftp - Fatal编程技术网

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

PHP FTP脚本本身就可以工作,但作为WordPress插件的一部分时失败,php,wordpress,ftp,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_

我有一个非常简单的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中

警告:第xx行的ftp_get:Type设置为A.in/path/to/file/cron.php

我在php_connect_nonb警告上做了很多搜索,他们都建议它与防火墙相关,但是当它是一个独立脚本时,它又如何工作呢


有没有人有任何逻辑推理来解释这是如何可能的,以及为什么它在投入WP时会突然停止工作?我完全没有主意了。

检查你的php.ini文件。搜索“模块”或“动态扩展”。确保其中包含行扩展名=php_ftp.dll。如果你找到这条线,但它有一个;在它前面,删除它,因为它用于注释行。

当你说standalone时,你的意思是从命令行吗?你是否在与standalone代码相同的服务器上测试了该插件?只是为了排除服务器设置的任何问题。@JMRC和JMRC都在同一台服务器上/domain@Dave我的意思是,我在站点的根目录中创建了一个test.php文件,使用了完全相同的代码。我把站点的根目录与命令行混淆了,而不是在web服务器下。现在要删除该注释:错误消息来自ftp_get。因此OP加载了php_ftp模块。