2013-07-04 127 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

在重定向頁面上,文件仍然會下載,並在隨後的頁面上執行。內容永遠不會在問題的頁面上提供。我無法弄清楚當我訪問該頁面時,谷歌試圖強制下載的文件。 –

相關問題