2016-04-23 14 views
0

これは私がこれまでにしようとしているものです:それは言うあなたvar_dump($raw)場合PHP cURLイメージの幅を取得する方法は?

> (!) Warning: imagecreatefromstring(): Data is not in a recognized 
> format in 
> C:\wamp\www\......funcs.php on 
> line 399 Call Stack 
> # Time Memory Function Location 1 0.0022 294120 {main}() ..\... 

string '<html> 

<head><title>302 Found</title></head> 

<body bgcolor="white"> 

<center><h1>302 Found</h1></center> 

<hr><center>BSWS/2.1</center> 

</body> 

</html> 

' (length=157) 

は何でし

$h = curl_init(); 
$headers = array(
"Range: bytes=0-700" 
); 
curl_setopt($h, CURLOPT_URL, $url); 
curl_setopt($h, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($h, CURLOPT_RETURNTRANSFER, 1); //return the image value 

$mh = curl_multi_init(); 
curl_multi_add_handle($mh, $h); 

$running = null; 
do { 
    curl_multi_exec($mh, $running); 
} while ($running > 0); 

$raw = curl_multi_getcontent($h); 
$im = imagecreatefromstring($raw); 



$width = imagesx($im); 
    $height = imagesy($im); 


var_dump($width); 

を私は、コードを実行するたびに、私はこのエラーを取得します問題になる...私は今問題を解決しようとしている6時間以上を過ごしました...助けてください。ありがとう

答えて

3

あなたはサーバーからのリダイレクトを受信して​​いるようで、cURLは画像そのものではなくコンテンツとしてこれを提供しています。 CURLOPT_FOLLOWLOCATIONオプションを使用してみてください。

だから:

curl_setopt($h, CURLOPT_URL, $url); 
curl_setopt($h, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($h, CURLOPT_RETURNTRANSFER, 1); //return the image value 

は次のようになります。ここでのcURLのオプションの

curl_setopt($h, CURLOPT_URL, $url); 
curl_setopt($h, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($h, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($h, CURLOPT_RETURNTRANSFER, 1); //return the image value 

全リスト:http://php.net/manual/en/function.curl-setopt.php

HTH

+0

サンキュー!! ...それはそれでした! –

関連する問題