function
get_domain(
$url
){
$pattern
= "/[\w-]+\.(com|net|org|gov|cc|biz|info|cn)(\.(cn|hk))*/";
preg_match(
$pattern
,
$url
,
$matches
);
if
(
count
(
$matches
) > 0) {
return
$matches
[0];
}
else
{
$rs
=
parse_url
(
$url
);
$main_url
=
$rs
["host"];
if
(!
strcmp
(long2ip(sprintf("%u",
ip2long
(
$main_url
))),
$main_url
)) {
return
$main_url
;
}
else
{
$arr
=
explode
(".",
$main_url
);
$count
=
count
(
$arr
);
$endArr
=
array
("com","net","org","3322");
if
(in_array(
$arr
[
$count
-2],
$endArr
)){
$domain
=
$arr
[
$count
-3].".".
$arr
[
$count
-2].".".
$arr
[
$count
-1];
}
else
{
$domain
=
$arr
[
$count
-2].".".
$arr
[
$count
-1];
}
return
$domain
;
}
}
}
class
GetImage {
var
$source
;
var
$save_to
;
var
$quality
;
function
download(
$method
= 'curl') {
$info
= @
GetImageSize
(
$this
->source);
$mime
=
$info
['mime'];
$type
=
substr
(
strrchr
(
$mime
, '/'), 1);
switch
(
$type
){
case
'jpeg':
$image_create_func
= 'ImageCreateFromJPEG';
$image_save_func
= 'ImageJPEG';
$new_image_ext
= 'jpg';
$quality
= isSet(
$this
->quality) ?
$this
->quality : 100;
break
;
case
'png':
$image_create_func
= 'ImageCreateFromPNG';
$image_save_func
= 'ImagePNG';
$new_image_ext
= 'png';
$quality
= isSet(
$this
->quality) ?
$this
->quality : 0;
break
;
case
'bmp':
$image_create_func
= 'ImageCreateFromBMP';
$image_save_func
= 'ImageBMP';
$new_image_ext
= 'bmp';
break
;
case
'gif':
$image_create_func
= 'ImageCreateFromGIF';
$image_save_func
= 'ImageGIF';
$new_image_ext
= 'gif';
break
;
case
'vnd.wap.wbmp':
$image_create_func
= 'ImageCreateFromWBMP';
$image_save_func
= 'ImageWBMP';
$new_image_ext
= 'bmp';
break
;
case
'xbm':
$image_create_func
= 'ImageCreateFromXBM';
$image_save_func
= 'ImageXBM';
$new_image_ext
= 'xbm';
break
;
default
:
$image_create_func
= 'ImageCreateFromJPEG';
$image_save_func
= 'ImageJPEG';
$new_image_ext
= 'jpg';
}
if
(isSet(
$this
->set_extension)){
$ext
=
strrchr
(
$this
->source, ".");
$strlen
=
strlen
(
$ext
);
$new_name
=
basename
(
substr
(
$this
->source, 0, -
$strlen
)).'.'.
$new_image_ext
;
}
else
{
$new_name
=
basename
(
$this
->source);
}
$save_to
=
$this
->save_to."/blog_insert_temp_".time().mt_rand(1,99).".".
$new_image_ext
;
$img_info
['name'] =
basename
(
$this
->source);
$img_info
['type'] =
$mime
;
$img_info
['size'] = 1000;
$img_info
['tmp_name'] =
$save_to
;
$img_info
['error'] = 0;
if
(
$method
== 'curl'){
$save_image
=
$this
->LoadImageCURL(
$save_to
);
}
elseif
(
$method
== 'gd'){
$img
=
$image_create_func
(
$this
->source);
if
(isSet(
$quality
)){
$save_image
=
$image_save_func
(
$img
,
$save_to
,
$quality
);
}
else
{
$save_image
=
$image_save_func
(
$img
,
$save_to
);
}
}
return
$img_info
;
}
function
LoadImageCURL(
$save_to
){
$ch
= curl_init(
$this
->source);
$fp
=
fopen
(
$save_to
, "wb");
$options
=
array
(CURLOPT_FILE =>
$fp
,
CURLOPT_HEADER => 0,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_TIMEOUT => 60);
curl_setopt_array(
$ch
,
$options
);
curl_exec(
$ch
);
curl_close(
$ch
);
fclose(
$fp
);
}
}