/* * Function: PHP perfect implementation download remote picture save to local * Parameters: File URL, save file directory, save file name, use the download method * Use the original name of the remote file when the save file name is empty */ function GetImage ($url, $save _dir= ', $filename = ', $type =0) { if (Trim ($url) = = ") { Return Array (' file_name ' => ', ' Save_path ' => ', ' Error ' =>1); } if (Trim ($save _dir) = = ") { $save _dir= './'; } if (Trim ($filename) = = ") {//save filename $ext =strrchr ($url, '. '); if ($ext!= '. gif ' && $ext!= '. jpg ') { Return Array (' file_name ' => ', ' Save_path ' => ', ' Error ' =>3); } $filename =time (). $ext; } if (0!==strrpos ($save _dir, '/')) { $save _dir.= '/'; } Create a Save directory if (!file_exists ($save _dir) &&!mkdir ($save _dir,0777,true)) { Return Array (' file_name ' => ', ' Save_path ' => ', ' Error ' =>5); } Methods used to get remote files if ($type) { $ch =curl_init (); $timeout = 5; curl_setopt ($ch, Curlopt_url, $url); curl_setopt ($ch, curlopt_returntransfer,1); curl_setopt ($ch, Curlopt_connecttimeout, $timeout); $img =curl_exec ($ch); Curl_close ($ch); }else{ Ob_start (); ReadFile ($url); $img =ob_get_contents (); Ob_end_clean (); } $size =strlen ($IMG); File size $FP 2= @fopen ($save _dir. $filename, ' a '); Fwrite ($fp 2, $img); Fclose ($fp 2); Unset ($img, $url); Return Array (' file_name ' => $filename, ' Save_path ' => $save _dir. $filename, ' error ' =>0); } |