【问题标题】:file_get_contents() returns nothingfile_get_contents() 不返回任何内容
【发布时间】:2012-03-01 11:43:46
【问题描述】:

我正在尝试使用 PHP 的 file_get_contents() 函数从美国国家档案馆网站检索数据,就像我过去制作类似脚本时所做的那样。但由于某种原因,在这种情况下,该函数不会检索任何文件内容。

我必须承认,我对这类工作没有太多经验。有人可以指出为什么文件可能无法正确返回,即使当我在地址栏中手动键入 URL 时文件显示正常。这是源代码(或不输出任何内容的最小版本):

   $asn = $_REQUEST['asn'];
$format = $_REQUEST['output'];
  $data = array();

if(!empty($asn))
{
    $url_to_get = 'http://aad.archives.gov/aad/print-record-detail.jsp?dt=893&mtch=1&tf=F&q=31371273&bc=sl,fd&rpp=10&pg=1&rid=2546302';
    $content = file_get_contents($url_to_get);
    echo $content;
}

我们尝试访问的 URL 是 > http://aad.archives.gov/aad/print-record-detail.jsp?dt=893&mtch=1&tf=F&q=31371273&bc=sl,fd&rpp=10&pg=1&rid=2546302

localhost 上运行脚本是否可能会导致此处出现问题?

【问题讨论】:

  • 没有。尝试使用 jQuery 的 $.ajax() 访问页面会返回错误,但错误文本为空。
  • 您确定在 PHP 中启用了错误报告功能吗?
  • 警告:file_get_contents(aad.archives.gov/aad/…):无法打开流:已达到重定向限制,正在中止
  • 您的 php.ini 中可能有 fopen_url_wrappers = Off。检查来自file_get_contents 的返回值,如果它无法加载文件/url 或有权限问题,它可以是(bool)false。显示(或者更好的是,记录)错误并查看它们会提示您失败的原因。
  • 谢谢!显然,已达到重定向限制?!

标签: php screen-scraping file-get-contents


【解决方案1】:

如果失败肯定会有警告。那个特定的 URL 希望 PHP 被配置为支持 SSL,因为在股票上运行它给了我:

无法打开流:无法找到套接字传输“ssl” - 确实 配置PHP时忘记开启?

这告诉我必须为 PHP 启用 openssl 扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-21
    • 2016-03-30
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2019-04-06
    • 2012-02-15
    相关资源
    最近更新 更多