PHP正则采集图片并保存

2021-06-12 08:03

阅读:525

标签:splay   php正则   art   文件目录   strlen   play   out   ima   clean   

技术分享技术分享
php

/*
*功能:php完美实现下载远程图片保存到本地
*参数:文件url,保存文件目录,保存文件名称,使用的下载方式
*当保存文件名称为空时则使用远程文件原来的名称
*/
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) == ‘‘) { //保存文件名
        $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 .= ‘/‘;
    }
    //创建保存目录
    if (!file_exists($save_dir) && !mkdir($save_dir, 0777, true)) {
        return array(
            ‘file_name‘ => ‘‘,
            ‘save_path‘ => ‘‘,
            ‘error‘ => 5);
    }
    //获取远程文件所采用的方法
    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($save_dir . $filename, ‘a‘);
    fwrite($fp2, $img);
    fclose($fp2);
    unset($img, $url);
    return array(
        ‘file_name‘ => $filename,
        ‘save_path‘ => $save_dir . $filename,
        ‘error‘ => 0);
}

$url=‘http://old.pep.com.cn/xxsx/jszx/tbjxzy/xs3bjxzy/wenzi/201504/W020150417332945629042.jpg‘;
getImage($url, $save_dir = ‘./getimg/‘, $filename = ‘‘, $type = 0);
?>
View Code

 

PHP正则采集图片并保存

标签:splay   php正则   art   文件目录   strlen   play   out   ima   clean   

原文地址:http://www.cnblogs.com/xtmp/p/7288150.html


评论


亲,登录后才可以留言!