【发布时间】: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