2012-02-28 10 views
0

私はfolowing問題があります。私はサーバーからイメージをダウンロードするためにカールを使用します。画像の名前を自動的に生成してダウンロードしました。生成されたイメージ名の一部は返されません。 URLが画像を返すかどうかはどうすればわかりますか?URLが画像PHPを返すかどうかを知る方法は?

私の "壊れた"英語は申し訳ありません。

ありがとうございます!

+0

:あなたは、返されるデータが特定の型であることを確認するためにチェックすべき3ポイントがある、と述べた

だからあなたは、ランダムなファイル名を生成し、そのファイル名への要求を発行することによって、サーバーから画像を要求していますか?画像が見つからない場合は404を返しませんか?ちょっとしたコードでは多くのことが明らかになります。 – CodeCaster

答えて

0

私はあなたがすでにやるようにあなたがあなたのサーバーにデータをストリーミング保つことをお勧めしたいです。変換する前に確認するには、finfo-fileを使用します。

より複雑な方法は、例えば、Acceptヘッダーを設定することができます。ヘッダーが一致した場合にのみ、cUrlを使用して応答を取得します。例:

curl_setopt($cURL,CURLOPT_HTTPHEADER,array (
     "Accept: application/json" 
    )); 

またはCURLINFO_CONTENT_TYPEを使用し、参照http://ch.php.net/manual/en/function.curl-setopt.php

+0

'Accept 'を使うことは、リモートサーバとそれに対するアプリケーションの実装に大きく依存します。 – cmbuckley

+0

hm、そうです。 – pduersteler

1

ヴィータウタス答えは正しいが、不完全です。その後

$url = 'http://test.com/test/test/something'; 

$c = curl_init($url); 

// Here you would want to set more curl settings, such as 
// enabling redirection and setting a valid user agent. 

curl_exec($c); 

$t = curl_getinfo($c, CURLINFO_CONTENT_TYPE); 

$tは、あなたがNULLを取得し、その時点で、エラーが発生した場合を除き、(一緒にいくつかの他のものとの)MIMEタイプを含める必要があります。

  • ファイル拡張子
  • Content-Typeヘッダ
  • ファイルのmagic number
関連する問題