getimagesize()
urlをそのまま入れてもサイズなどを返してくれるので簡単
<?php
$size = getimagesize('http://free-photos-ls01.gatag.net/images/lgf01a201304271400.jpg');
/* $size のoutput
array (
0 => 1024,
1 => 768,
2 => 2,
3 => 'width="1024" height="768"',
'bits' => 8,
'channels' => 3,
'mime' => 'image/jpeg',
)
*/
file_get_contents()
stream_context_create()で作ったcontextを渡す事で、proxy経由などの設定が可能
<?php
// 例えばproxyを使う
$option = array(
'http' => array(
'proxy' => tcp://host:port, // ← 設定したいproxy
'request_fulluri' => true,
),
);
$context = stream_context_create($option);
$img_url = 'http://free-photos-ls01.gatag.net/images/lgf01a201304271400.jpg';
$img_data_string = file_get_contents($img_url, false, $context);
$img_data = imagecreatefromstring($img_data_string);
$height = imagesx($img_data);
$width = imagesy($img_data);
php5.4以降ならgetimagesizefromstringがつかえる
$img_info = getimagesizefromstring($img_data_string);
http function
response code など取得出来るのでエラーハンドリングしやすい
$img_url = 'http://aaabbbccc';
// optionを設定
$option['proxyhost'] = xxx.xxx.x.xxx;
$option['proxyport'] = yyyy;
$http->setOptions($option);
$http->send();
$http_code = $http->getResponseCode();
$response = $http->getResponseData();
$body = $response['body'];
$img_data = imagecreatefromstring($body);
$height = imagesx($img_data);
$width = imagesy($img_data);