復制代碼 代碼如下:
 
$a = "http://vevb.com/content/uploadfile/201106/thum-f3ccdd27d2000e3f9255a7e3e2c4880020110622095243.jpg"; 
$local = 'socket1.gif'; 
$aa = getImg($a,$local); 
/* 
*@ 完整的圖片地址 
*@ 要存儲的文件名 
*/ 
function getImg( $url = "", $filename = "" ) { 
if(is_dir(basename($filename))) { 
echo "The Dir was not exits"; 
Return false; 
} 
//去除URL連接上面可能的引號 
$url = preg_replace( '/(?:^[/'"]+|[/'"http://]+$)/', '', $url ); 
if (!extension_loaded('sockets')) return false; 
//獲取url各相關信息 
preg_match( '/http:////([^///:]+(/:/d{1,5})?)(.*)/i', $url, $matches ); 
if (!$matches) return false; 
$sock = socket_create( AF_INET, SOCK_STREAM, SOL_TCP ); 
if ( !@socket_connect( $sock, $matches[1], $matches[2] ? substr($matches[2], 1 ) : 80 ) ) { 
return false; 
} 
//圖片的相對地址 
$msg = 'GET ' . $matches[3] . " HTTP/1.1/r/n"; 
//主機名稱 
$msg .= 'Host: ' . $matches[1] . "/r/n"; 
$msg .= 'Connection: Close' . "/r/n/r/n"; 
socket_write( $sock, $msg ); 
$bin = ''; 
while ( $tmp = socket_read( $sock, 10 ) ) { 
$bin .= $tmp; 
$tmp = ''; 
} 
$bin = explode("/r/n/r/n", $bin); 
$img = $bin[1]; 
$h = fopen( $filename, 'wb' ); 
$res = fwrite( $h, $img ) === false ? false : true; 
@socket_close( $sock ); 
Return $res; 
} 
復制代碼 代碼如下:
 
<?php 
$url = "http://vevb.com/content/uploadfile/201106/thum-f3ccdd27d2000e3f9255a7e3e2c4880020110622095243.jpg"; 
$filename = 'curl.gif'; 
//http://vevb.com 
getImg($url, $filename); 
/* 
*@通過curl方式獲取制定的圖片到本地 
*@ 完整的圖片地址 
*@ 要存儲的文件名 
*/ 
function getImg($url = "", $filename = "") { 
if(is_dir(basename($filename))) { 
echo "The Dir was not exits"; 
Return false; 
} 
//去除URL連接上面可能的引號 
$url = preg_replace( '/(?:^[/'"]+|[/'"http://]+$)/', '', $url ); 
$hander = curl_init(); 
$fp = fopen($filename,'wb'); 
curl_setopt($hander,CURLOPT_URL,$url); 
curl_setopt($hander,CURLOPT_FILE,$fp); 
curl_setopt($hander,CURLOPT_HEADER,0); 
curl_setopt($hander,CURLOPT_FOLLOWLOCATION,1); 
//curl_setopt($hander,CURLOPT_RETURNTRANSFER,false);//以數據流的方式返回數據,當為false是直接顯示出來 
curl_setopt($hander,CURLOPT_TIMEOUT,60); 
/*$options = array( 
CURLOPT_URL=> 'http://vevb.com/content/uploadfile/201106/thum-f3ccdd27d2000e3f9255a7e3e2c4880020110622095243.jpg', 
CURLOPT_FILE => $fp, 
CURLOPT_HEADER => 0, 
CURLOPT_FOLLOWLOCATION => 1, 
CURLOPT_TIMEOUT => 60 
); 
curl_setopt_array($hander, $options); 
*/ 
curl_exec($hander); 
curl_close($hander); 
fclose($fp); 
Return true; 
} 
?> 
新聞熱點
疑難解答