文件发送404到fpf但可在浏览器中查看

时间:2011-08-01 12:21:58

标签: php

如果您在浏览器中访问此页面:http://www.x-rates.com/d/TRY/table.html您可以看到它工作正常,但当我尝试$doc = new DOMDocument(); $doc->loadHTMLFile('http://www.x-rates.com/d/TRY/table.html');时,它会返回404.我也尝试过file_get_contents()并以这种方式将html发送到DOMDocument,但没有运气。任何帮助都感激不尽。

2 个答案:

答案 0 :(得分:4)

404看起来像您为URL提供的标准响应代码:

$ curl -I http://www.x-rates.com/d/TRY/table.html
HTTP/1.1 404 Not Found
Date: Mon, 01 Aug 2011 12:23:49 GMT
Server: Apache/2.2.19
Content-Type: text/html

您可以获取HTTP响应正文并使用DomDocument作为字符串加载它。

可以使用file_get_contentsDocs并设置ignore_errors HTTP context option来完成此操作。示例代码:

$url = 'http://www.x-rates.com/d/TRY/table.html';

// Create a stream
$opts = array(
  'http'=>array(
    'ignore_errors'=> true,
  )
);

$context = stream_context_create($opts);

// Open the file using the HTTP headers set above
$file = file_get_contents($url, false, $context);

$doc = new DOMDocument();
$doc->loadHTML($file);

答案 1 :(得分:0)

该页面正在返回404,我相信这样做是为了让它更难以刮掉它。我在他们的网站上发现了这个:

  

不允许使用PHP,LWP,Java和Microsoft控件等工具获取数据

您可能需要仔细检查您是否真的被允许做您正在做的事情,我担心您可能会侵犯版权。