<?php
class
RedirectUrl{
var
$url
;
function
RedirectUrl(
$url
){
$this
->url =
$url
;
}
private
function
get_redirect_url(
$url
){
$redirect_url
= null;
$url_parts
= @
parse_url
(
$url
);
if
(!
$url_parts
)
return
false;
if
(!isset(
$url_parts
['host']))
return
false;
if
(!isset(
$url_parts
['path']))
$url_parts
['path'] = '/';
$sock
=
fsockopen
(
$url_parts
['host'], (isset(
$url_parts
['port']) ?
(int)
$url_parts
['port'] : 80),
$errno
,
$errstr
, 30);
if
(!
$sock
)
return
false;
$request
=
"HEAD "
.
$url_parts
['path'] . (isset(
$url_parts
['query']) ? '?'.
$url_parts
['query'] : '') .
" HTTP/1.1\r\n"
;
$request
.= 'Host: ' .
$url_parts
['host'] .
"\r\n"
;
$request
.=
"Connection: Close\r\n\r\n"
;
fwrite(
$sock
,
$request
);
$response
= '';
while
(!
feof
(
$sock
))
$response
.=
fread
(
$sock
, 8192);
fclose(
$sock
);
if
(preg_match('/^Location: (.+?)$/m',
$response
,
$matches
)){
return
trim(
$matches
[1]);
}
else
{
return
false;
}
}
private
function
get_all_redirects(
$url
){
$redirects
=
array
();
while
(
$newurl
=
$this
->get_redirect_url(
$url
)){
if
(in_array(
$newurl
,
$redirects
)){
break
;
}
$redirects
[] =
$newurl
;
$url
=
$newurl
;
}
return
$redirects
;
}
function
get_final_url(){
$redirects
=
$this
->get_all_redirects(
$this
->url);
if
(
count
(
$redirects
)>0){
return
array_pop
(
$redirects
);
}
else
{
return
$this
->url;
}
}
}
function
get_show_pic(
$url
,
$noimg
= 'noimg.gif',
$newimg
=
"http://special.ku6img.com/projects/2010/d-color/images/slt-1.jpg"
){
$obj
=
new
RedirectUrl(
$url
);
$realurl
=
$obj
->get_final_url();
if
(
strpos
(
$realurl
,
$noimg
)>0){
return
$newimg
;
}
return
$url
;
}
echo
"<img src='"
.get_show_pic(
"http://i2.ku6img.com/encode/picpath/2010/12/9/14/1294948410019/5.jpg"
).
"'/>"
;
?>