欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

从文章中提取图片,把图片保存到本地,自动提取缩略图

程序员文章站 2022-04-13 23:05:08
...
开发二代旅游网站程序和CMS的时候,有一个需求,就是从网上复制的内容,里面包含图片的,需要对把图片提取出来,并且保存到本地,并且把图片的URL地址本地化,以下是实现的代码。
开发二代旅游网站程序和CMS的时候,有一个需求,就是从网上复制的内容,里面包含图片的,需要对把图片提取出来,并且保存到本地,并且把图片的URL地址本地化,以下是实现的代码,功能和效果可以参考二代旅游CMS官网(http://www.erdaicms.com):

/* 远程图片本地化 $body为html原内容 */
function auto_save_image($body){


$img_array = explode('&',$body);
$img_array = array();
preg_match_all("/(src)=[\"|\'| ]{0,}(http:\/\/(.*)\.(gif|jpg|jpeg|bmp|png|JPEG|GIF|PNG))[\"|\'| ]{0,}/isU", $body, $img_array);
$img_array = array_unique($img_array[2]);//也可以自动匹配


set_time_limit(0);
$imgPath = "Uploads/article/".date("Y-m-d")."/";
$milliSecond = strftime("%H%M%S",time());
if(!is_dir($imgPath)) @mkdir($imgPath,0777);
foreach($img_array as $key =>$value)
{
$value = trim($value);
$get_file = @file_get_contents($value);



$rndFileName = $imgPath."/".$milliSecond.$key.".".substr($value,-3,3);
if($get_file)
{
$fp = @fopen($rndFileName,"w");
@fwrite($fp,$get_file);
@fclose($fp);
}
$body = @ereg_replace($value, '/'.$rndFileName, $body);
}

return $body;
}
/* 提取图片数组 */function auto_return_image($body){

$img_array = explode('&',$body);
$img_array = array();
preg_match_all("/(src)=[\"|\'| ]{0,}(\/(.*)\.(gif|jpg|jpeg|bmp|png|JPEG|GIF|PNG))[\"|\'| ]{0,}/isU", $body, $img_array);
$img_array = array_unique($img_array[2]);//也可以自动匹配

return $img_array;
}
最终效果如下:
从文章中提取图片,把图片保存到本地,自动提取缩略图

从文章中提取图片,把图片保存到本地,自动提取缩略图 1.png ( 10.84 KB 下载:13 次 )

AD:真正免费,域名+虚机+企业邮箱=0元