PHP FTP脚本本身就可以工作,但作为WordPress插件的一部分时失败
我有一个非常简单的PHP,它通过FTP连接来获取文件。看起来是这样的: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_
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模块。