2013-07-04 130 views
0

如果网页强制通过标题下载文件。示例如下所示!PHP读取文件而不是下载

trying_to_parse.php:

header('Content-disposition: attachment; filename="examplefile.xml"'); 
header('Content-type: "text/xml"; charset="utf8"'); 
readfile('examplefile.xml'); 

使用PHP IM试图抓住并通过分析这个文件:

使用example.php:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'trying_to_parse.php'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$xml = curl_exec($ch); 
echo $xml; 
curl_close($ch); 

这并没有因为卷曲的工作没有标题。

所以我继续尝试了一些更多的东西,如fopen和file_get _...,这些也没有奏效。

关于如何实际加载通过头文件强制下载的文件的任何想法?

我想用:

$dom->loadXML($xml); 

但生病带走任何东西:)

我想解析ForceDownloadedFile.xml文件,它是当你访问一个网址下载力。任何想法?

+0

请联系API访问该网站的供应商。 – hakre

+4

这个问题似乎与题外话,因为它是关于对第三方网站的支持请求。 – hakre

+1

没有它的一个普遍问题你只是看不到这个,并像垃圾邮件发布!编辑它,让你喜欢的人更容易看到! –

回答

0

这是一个301重定向,所以你需要告诉卷曲跟踪该重定向,并从新的位置获取文件:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
+0

定义的范围内setopt你的意思。这不允许读取或下载文件。 –

+0

不,但它会允许curl遵循重定向链,直到它到达一个提供一些数据的url。如果关闭该选项,curl将停止在第一个url的跟踪中,因为不允许在Google的响应中告诉它。 –

+0

在重定向页面上,文件仍然会下载,并在随后的页面上执行。内容永远不会在问题的页面上提供。我无法弄清楚当我访问该页面时,谷歌试图强制下载的文件。 –

相关问题