1. 程式人生 > >PHP正則采集圖片並保存

PHP正則采集圖片並保存

con lap sta php正則 exists conn hid 文件名 time

技術分享
<?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正則采集圖片並保存