我有这个非常简单的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时突然停止工作有任何逻辑推理?我完全没有主意。
答案 0 :(得分:-1)
检查您的php.ini
文件。搜索“模块”或“动态扩展”。确保其中的行extension=php_ftp.dll
在其中。如果找到此行,但它前面有;
,请删除它,因为它用于注释行。