<?php
//$contents:包含<img>标签的原字符串、$replaceStr:替换后的字符串
if(strstr($contents,'<img'))
{
$pregRule = "/<[img|IMG].*?src=[\'|\"](.*?(?:[\.jpg|\.jpeg|\.png|\.gif|\.bmp]))[\'|\"].*?[\/]?>/";
preg_match_all($pregRule,$contents,$array,PREG_PATTERN_ORDER);
$replaceArr = array();
foreach($array[1] as $value) {
array_push($replaceArr, $this->_downLoadImage($value));
}
$replaceStr = str_replace($array[1], $replaceArr, $contents);
}
/*
* 下载图片
*
* @params string img : 原图片地址
* @return string savePath/false 保存后的地址/失败
*
* */
private function _downLoadImage($img)
{
$imageTypeArray = array(
1 => 'gif',
2 => 'jpeg',
3 => 'png',
6 => 'bmp',
15 => 'wbmp',
);
$imageType = exif_imagetype($img);
if (empty($img) || !isset($imageTypeArray[$imageType])) {
return false;
}
if(stripos($img,'http://')!== false or stripos($img,'ftp://')!== false){
$fileDir = '../upload/image/' . date('Ymd') . '/';
if(!is_dir($fileDir)) {
if (!mkdir($fileDir, 0700, true)) {
return false;
}
}
$filename = md5(microtime(true) . mt_rand()) . '.' . $imageTypeArray[$imageType];
$savePath = $fileDir . $filename;
ob_start();
readfile($img);
$img = ob_get_contents();
ob_end_clean();
$fp = @fopen($savePath, "a");
if( fwrite($fp, $img) ){
fclose($fp);
return trim($savePath,'..');
}else{
fclose($fp);
return false;
}
} else {
return false;
}
}