【问题标题】:Fetching data through URL works on localhost but not on server通过 URL 获取数据适用于 localhost 但不适用于服务器
【发布时间】:2017-10-24 12:39:22
【问题描述】:

相同的代码适用于本地主机。当尝试在服务器上使用相同的代码时,它不会提取任何数据。 我为此头疼,请帮帮我。

<?php
$url = 'http://52.66.102.121:8000/?fromstop=THANE(THANE)&tostop=PUNE(PUNE)&jrdt=25-05-17';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
print_r ($result);
?>

【问题讨论】:

  • 您至少应该显示您认为已损坏的代码。
  • 如果您还没有告诉我们您实际在做什么,我们究竟应该如何帮助您?
  • 当您询问有关错误的问题时总是包括错误日志。在php 脚本的顶部添加error_reporting(E_ALL); ini_set('display_errors', 1);,它会返回什么?
  • 获取空白页。

标签: php api url curl


【解决方案1】:

在 php.ini 中设置 url fopen 并尝试一下。

allow_url_fopen = On

根据您发布的上述代码,我认为您应该没有在服务器中启用 curl。请确认是否已启用。

【讨论】:

  • 我认为您的代码没有任何问题,可能是服务器防火墙或其他问题。
  • 可能是,但如何解决?文件获取内容();也在本地主机上工作,而不是一台服务器
  • 嗯,打开端口 8080 并尝试它应该可以工作。不要忘记从 URL 中删除端口或在 url 中添加 8080 端口
  • 我们不能更改 url,因为它是 MSRTC url。
【解决方案2】:

确保两者都命中相同的 URL,并检查您的本地和服务器 PHP 版本,不要提供任何静态 URL,如 http://localhost/

【讨论】:

    【解决方案3】:

    您应该提供更多信息,例如无法在服务器上运行的代码。此外,检查本地和服务器上使用的 PHP 版本。

    【讨论】:

    • 这不是答案
    • 现在我可以看到代码了 :) 对我来说似乎很好。如果 file_get_contents 也无法在您的服务器上运行,请让服务器人员确认您的 ini 文件中的 allow_url_fopen 设置没有被覆盖。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 2012-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 2014-04-19
    • 2019-09-09
    相关资源
    最近更新 更多