2011-07-28 41 views
0

我有一個使用libcurl的PHP腳本,並且正在下載使用某些類型的相對路徑的文件。PHP/Libcurl - 無法使用相對路徑獲取圖像../ ..

例如:

http://www.msn.com/../../i/09/4ebdf19a1ce03cce12e11926256422.gif 

我使用以下curlopts:

curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

我缺少的東西?

+0

你能更精確一點嗎?意外發生了什麼?或者你希望發生什麼,但沒有?你有沒有注意到PHP知道真假? :) – wonk0

+0

是的,我知道這是真的/假的作品。它會下載一張無法打開的4k圖片,但如果您通過瀏覽器訪問該網址,則這是一個不是4k的工作圖片。 – cstrouse

回答

1
curl_setopt($ch, CURLOPT_HEADER, 1); 

這告訴CURL在curl_exec返回的內容中包含HTTP標頭。所以你會在.gif數據前面加入一堆http「垃圾」,導致它損壞。

+0

即使我刪除它仍然不會擴展相對路徑並獲取文件。 – cstrouse

+0

捲曲不知道路徑。它只會按照您提供的要求在請求中關閉該網址。你有沒有嘗試在文本編輯器中打開'壞'4k文件,看看它是真的損壞.gif數據,還是有一些錯誤文本? –

+0

噢好吧,所以它必須是一個問題,然後傳遞的URL? – cstrouse