Often when writing collector publishing interfaces, I need to use the function of remote attachments, so I wrote a PHP function to remotely download files to the local area. Under normal circumstances, it is enough. If the server supports the CURL function, the program will give priority to CURL. Friends who need it can refer to it.
The code is very simple, so I won’t go into too much nonsense, just give it to you:
?
|
<🎜>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(" "," ",$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; } } } ?> |
Another remote download file to the server
?
2 3 11 12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
< ?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);<🎜> <🎜>}<🎜> <🎜>?> |