php如何下载动态图片保存到本地?
像下面的图片连接:用file_get_contents()函数读取不到。但用迅雷就可以下载。求怎么样才能用php下载保存到本地!!急,望高手解答!!!!...
像下面的图片连接:
用file_get_contents()函数读取不到。但用迅雷就可以下载。求 怎么样才能用php下载保存到本地!! 急,望高手解答!!!! 展开
用file_get_contents()函数读取不到。但用迅雷就可以下载。求 怎么样才能用php下载保存到本地!! 急,望高手解答!!!! 展开
3个回答
展开全部
php 远程下载文件
function httpcopy($url, $file="", $timeout=60) {
$file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file;
$dir = pathinfo($file,PATHINFO_DIRNAME);
!is_dir($dir) && @mkdir($dir,0755,true);
$url = str_replace(" ","%20",$url);
if(function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$temp = curl_exec($ch);
if(@file_put_contents($file, $temp) && !curl_error($ch)) {
return $file;
} else {
return false;
}
} else {
$opts = array(
"http"=>array(
"method"=>"GET",
"header"=>"",
"timeout"=>$timeout)
);
$context = stream_context_create($opts);
if(@copy($url, $file, $context)) {
//$http_response_header
return $file;
} else {
return false;
}
}
}
function httpcopy($url, $file="", $timeout=60) {
$file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file;
$dir = pathinfo($file,PATHINFO_DIRNAME);
!is_dir($dir) && @mkdir($dir,0755,true);
$url = str_replace(" ","%20",$url);
if(function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$temp = curl_exec($ch);
if(@file_put_contents($file, $temp) && !curl_error($ch)) {
return $file;
} else {
return false;
}
} else {
$opts = array(
"http"=>array(
"method"=>"GET",
"header"=>"",
"timeout"=>$timeout)
);
$context = stream_context_create($opts);
if(@copy($url, $file, $context)) {
//$http_response_header
return $file;
} else {
return false;
}
}
}
展开全部
function onlineToLocal($url,$type)
{
if( empty($url) || empty($type) )
return false;
set_time_limit(24*60*60); //限制最大的执行时间
$path= "e:/www/app/st/download"; //文件保存目录
$suffix = ".jpg";
$file_name = date("YmdHis") . rand(0, 1000) . $suffix;//文件保存名字
$new_file_name = $path . $file_name;//文件PATH
$file_handle = fopen( $url, 'rb' );
if( $file_handle ){
$new_file_handle = fopen( $new_file_name, 'wb' );
if( $new_file_handle ){
while( !feof( $file_handle ) ){
fwrite( $new_file_handle, fread( $file_handle, 1024*8 ), 1024*8 );
}
}
if( $file_handle ){
fclose( $file_handle );
}
if( $new_file_handle ){
fclose( $new_file_handle );
}
}
return $new_file_name;
}
{
if( empty($url) || empty($type) )
return false;
set_time_limit(24*60*60); //限制最大的执行时间
$path= "e:/www/app/st/download"; //文件保存目录
$suffix = ".jpg";
$file_name = date("YmdHis") . rand(0, 1000) . $suffix;//文件保存名字
$new_file_name = $path . $file_name;//文件PATH
$file_handle = fopen( $url, 'rb' );
if( $file_handle ){
$new_file_handle = fopen( $new_file_name, 'wb' );
if( $new_file_handle ){
while( !feof( $file_handle ) ){
fwrite( $new_file_handle, fread( $file_handle, 1024*8 ), 1024*8 );
}
}
if( $file_handle ){
fclose( $file_handle );
}
if( $new_file_handle ){
fclose( $new_file_handle );
}
}
return $new_file_name;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
换个函数试试,或检查下服务器是否禁用获取远程内容
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询