PHP实现远程下载文件到本地
内容摘要
代码很简单就不多废话了,直接奉上:
<?php
echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif");
function httpcopy($url, $file="", $timeout=60) {
$fi
<?php
echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif");
function httpcopy($url, $file="", $timeout=60) {
$fi
文章正文
代码很简单就不多废话了,直接奉上:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?php echo httpcopy( "http://www.baidu.com/img/baidu_sylogo1.gif" ); 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; } } } ?> |
再来个远程下载文件到服务器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <form method= "post" > <input name= "url" size= "50" /> <input name= "submit" type= "submit" /> </form> < ?php // maximum execution time in seconds set_time_limit (24 * 60 * 60); if (!isset( $_POST [ 'submit' ])) die (); // folder to save downloaded files to. must end with slash $destination_folder = 'temp/' ; $url = $_POST [ 'url' ]; $newfname = $destination_folder . basename ( $url ); $file = fopen ( $url , "rb" ); if ( $file ) { $newf = fopen ( $newfname , "wb" ); if ( $newf ) while (! feof ( $file )) { fwrite( $newf , fread ( $file , 1024 * 8 ), 1024 * 8 ); } } if ( $file ) { fclose( $file ); } if ( $newf ) { fclose( $newf ); } ?> |
以上所述就是本文的全部内容了,希望大家能够喜欢。
代码注释