我需要从ftp服务器上的.gz文件中提取数据。 FTP服务器可以使用IP白名单,因此我提交了我的本地IP和网站IP(我用gethostbyname
来获取IP),它们都被批准了。
在本地,我可以运行以下代码访问文件:
$url="ftp://username:password@host/targetfile.gz";
$xml = simplexml_load_file("compress.zlib://$url") or die ("Cannot load file");
这运行得很好,它允许我从XML文件中提取数据。
但是,当我在服务器上运行脚本时,我没有建立连接。我联系了运行ftp服务器的管理员,他们告诉我他们仅允许FTPS连接。
因此,我继续执行以下代码尝试建立连接:
$conn_id = ftp_ssl_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
if (!$login_result) {
die("Cannot login.");
}
echo ftp_pwd($conn_id); // /
// close the ssl connection
ftp_close($conn_id);
这也没有连接。我对使用PHP和FTP进行FTP连接是不熟悉的,从这一点上我不知道如何进行。
已启用OpenSSL。
有人能指出我正确的方向吗?
编辑:以下是错误消息:
当我使用最上面的代码块时,会发生这种情况:
警告:simplexml_load_file():I / O警告:无法加载外部 实体 “ compress.zlib://用户名:密码@ ftp.thehost.com / targetfile.gz”;在 /path/to/my/website/folder/htdocs/mydomain.com/feeds/script.php在 第13行
当我使用底部的代码块时,出现此错误:
警告:ftp_login()期望参数1为资源,给定布尔值 在/path/to/my/website/folder/htdocs/mydomain.com/feeds/script.php中 第16行无法登录。
我无权访问afaik日志文件
答案 0 :(得分:0)
我认为我们在这里没有什么可以帮助您的。
Web服务器和FTP服务器之间没有网络连接。
请注意,不一定是因为Web服务器尚未在FTP服务器上列入白名单。 Web服务器也可能不允许传出连接。