2011-07-28 27 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

はい私はtrue/falseが動作することを知っています。それは開くことができない4kのイメージをダウンロードするが、あなたがブラウザを介してURLにアクセスすると、それは4kでない​​作業イメージである。 – cstrouse

答えて

1
curl_setopt($ch, CURLOPT_HEADER, 1); 

これは、curl_execが返すHTTPヘッダーをCURLに含めるように指示します。したがって、.gifデータの前にhttpの "ゴミ"があり、データが破損します。

+0

それを削除しても、その相対パスを展開せずにファイルを取得することはありません。 – cstrouse

+0

curlはパスについて何も知らない。あなたがそれを提供したのとまったく同じように、要求に応じてそのURLを発します。テキストエディタで 'bad' 4kファイルを開こうとしましたが、実際に.gifデータが破損しているのか、エラーテキストがありますか? –

+0

ああ、それでは、それが渡されているURLの問題である必要がありますか? – cstrouse

関連する問題