[PHP-users 34492] Re: PNG画像の取得と保存

川崎 英治 e-kawasaki @ j-ict.co.jp
2009年 4月 9日 (木) 15:05:17 JST


こんにちは
初めまして

fopenの部分をバイナリーモード
	$ofp = fopen($newfile, 'wb');
で、
開けば良いのでは?


On 2009/04/09, at 14:41, namacha wrote:

> こんにちは
> hiroseといいます。
>
> あるサイトからPNGの画像を取得しファイルとして保存しよ 
> うとしていますが
> 画像内容が壊れてしまいます。
> 具体的には以下ですが、ブラウザで取得した画像内容とPHP 
> で取得したものとの内容を
> バイナリレベルで比較すると微妙に異なってしまいます。
> fread とfwriteのどこかで何らかの変換が起こるのでしょうか?
> よろしくおねがいします。
>
> ちなみに対象は
> http://charts.quote.com/ifs/ifs?cont=ym+m9&size=260x155&period=V&varminutes=10&bartype=CANDLE&bardensity=MEDIUM& 
> ?527
> (以下は生ソースです)
> copy(url,file)でやると相手サーバーからエラー返されるので fsock 
> でやってます。
> PHP Version 4.4.9
> --------------------------------------------------------------------------
> $newfile="new.png";
> $ofp = fopen($newfile, 'w');
>
> $fp = fsockopen("charts.quote.com", 80, $errno, $errstr, 30);
> if (!$fp) {
>    echo "$errstr ($errno)<br />\n";
> } else {
>
>    $out = "GET /ifs/ifs?cont=ym 
> + 
> m9 
> &size 
> =260x155&period=V&varminutes=5&bartype=CANDLE&bardensity=MEDIUM&?527  
> HTTP/1.1\r\n";
>    $out .= "Accept: */*\r\n";
>    $out .= "Accept-Language: ja\r\n";
>    $out .= "Accept-Encoding: gzip, deflate\r\n";
>    $out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows  
> NT 5.0)\r\n";
>    $out .= "Host: charts.quote.com\r\n";
>    $out .= "Connection: Keep-Alive\r\n\r\n";
>
>
>    fwrite($fp, $out);
>
>    while (!feof($fp)) {
>        $headers=fgets($fp, 4096);
>        if(trim($headers)==""){
>            $headers=fgets($fp, 4096);
>            break;
>        }
>    }
>
>    $pngs="";
>    while (!feof($fp)) {
>        $pngs=fgets($fp,8192);
>        fwrite($ofp,$pngs,8192);
>    }
>
>    fclose($fp);
>    fclose($ofp);
> }
>
> -----------------------------------------------------------------
>
>
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読 
> みください
> http://oldwww.php.gr.jp/php/novice.php3
>



PHP-users メーリングリストの案内