我需要从ftp服务器上的.gz文件中提取数据。FTP服务器使用IP白名单,所以我提交了我的本地IP和我的网站IP(我使用gethostbyname
获得IP(,这两个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警告:无法加载外部实体"压缩。zlib://username:password@ftp.thehost.com/targetfile.gz";位于/路径/to/my/website/folder/htdocs/mydomain.com/feeds/script.php13号线
当我使用代码的底部块时,我会得到以下错误:
警告:ftp_login((要求参数1为资源,给定布尔值在/path/to/my/website/folder/htdocs/mydomain.com/feeds/script.php上第16行无法登录。
我无法访问日志文件afaik
我认为我们在这里帮不了你什么。
web服务器和FTP服务器之间没有网络连接。
请注意,这不一定是因为web服务器没有在FTP服务器上列入白名单。web服务器也可能不允许传出连接。