首页 > php图像处理 > php curl与fopen下载远程服务器图片实例

php curl与fopen下载远程服务器图片实例

fopen函数,代码如下:

<?php
function get_file($url, $folder, $pic_name) {
    set_time_limit(24 * 60 * 60); //限制最大的执行时间
    $destination_folder = $folder ? $folder . '/' : ''; //文件下载保存目录
    $newfname = $destination_folder . $pic_name; //文件PATH
    $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);
        }
    }
}
get_file("/img/baidu_logo.gif", "file", "baidu.jpg");
?>

php curl函数,代码如下:

<?php
/*
 *功能:php多种方式完美实现下载远程图片保存到本地
 *参数:文件url,保存文件名称,使用的下载方式
 *当保存文件名称为空时则使用远程文件原来的名称
*/
function getImage($url, $filename = '', $type = 0) {
    if ($url == '') {
        return false;
    }
    if ($filename == '') {
        $ext = strrchr($url, '.');
        if ($ext != '.gif' && $ext != '.jpg') {
            return false;
        }
        $filename = time() . $ext;
    }
    //文件保存路径
    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);
    //文件大小
    $fp2 = @fopen($filename, 'a');
    fwrite($fp2, $img);
    fclose($fp2);
    return $filename;
}
?>

开启php curl函数库的步骤:

1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路径*/

2).把php5/libeay32.dll,ssleay32.dll复制到系统目录windows/下

3).重启apache

教程网址:http://www.phprm.com/tuxiang/fs1091.html

欢迎收藏∩_∩但请保留本文链接。

标签:fopen curl 下载 图片实例

相关文章

发表留言