【发布时间】:2017-09-27 05:28:34
【问题描述】:
我正在为电影院创建一个 PHP 应用程序,当用户访问它时,它会获取外部 XML 文档,并将其保存到我们的服务器。然后使用该 XML 文件加载放映时间和其他电影信息。如果我们服务器上的文件超过 15 分钟,它将被覆盖,否则,它将加载现有的文件。我已经基本完成了该应用程序,它在我的 XAMPP 测试服务器上运行良好,但它无法在实时服务器上运行。
外部 XML 文件位于以下 URL:http://45502.formovietickets.com:2235/showtimes.xml。我试图将文件保存到的服务器位于 HostGator 的基于 Linux 的服务器之一上。使用 PHP 的 curl 函数,我只能在 XAMPP 测试服务器上成功加载 XML 文件。在实时服务器上,它根本无法连接。
我觉得这可能是对 formovietickets.com 服务器的某种访问限制,但它背后的人坚持认为没有任何限制。有谁知道解决这个问题的方法?
<?php
$url = 'http://45502.formovietickets.com:2235/showtimes.xml';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if(curl_exec($ch) === false) {
echo 'Curl error: '.curl_error($ch);
} else {
echo 'Retrieved file with no errors!';
}
curl_close($ch);
?>
我测试了什么?
- 我尝试将 php.ini 文件从 XAMPP 传输到实时服务器,但仍然失败。
- 我能够成功检索到另一个外部服务器上的 XML 文件。
- 我在基于 Windows 的服务器上测试了代码,但问题仍然存在。
注意:如果您在 15 分钟内多次从同一 IP 地址加载 URL,您将收到一条错误消息,提示“来自该 IP 地址的请求过多”。只是说以防万一您尝试测试一下。
【问题讨论】:
标签: php xml curl server file-get-contents