使用ThinkPHP自带的Http类下载远程图片到本地的实现代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ThinkPHP自带的Http类下载远程图片到本地的实现代码相关的知识,希望对你有一定的参考价值。

private function downimg($text,$title){
$pattern="/<[img|IMG].*?src=[\‘|\"](.*?(?:[\.gif|\.jpg|\.png]))[\‘|\"].*?[\/]?>/";//匹配图片的正则式

if(preg_match_all($pattern, $text, $matches)) {
//类库
$http = new \Org\Net\Http();
$image = new \Think\Image();
foreach($matches[1] as $ak=>$av){
if(strstr($av,‘http:‘) && !strstr($av,$_SERVER[‘HTTP_HOST‘])){
$datepath=date(‘Ymd‘);
$img_name=md5($av);
$dir=‘./‘.C(‘attach_path‘).‘file/‘.$datepath.‘/‘;
if(!is_dir($dir)) mkdir($dir, 0777,1);
$save_path=$dir.$img_name.‘.jpg‘;
$htmlpath=‘/‘.C(‘attach_path‘).‘file/‘.$datepath.‘/‘.$img_name.‘.jpg‘;
//下载图片
$http->curlDownload($av,$save_path);
//图片加水印
$image->open($save_path);
$image->text(C(‘img_water‘),‘./static/2.ttf‘,18,‘#000000‘,\Think\Image::IMAGE_WATER_SOUTHEAST)->save($save_path);
$image->thumb(200, 200,\Think\Image::IMAGE_THUMB_CENTER)->save($dir.$img_name.‘_s.jpg‘);
//替换内容
//if($ak){
// $text= str_replace($matches[0][$ak],‘<img src="‘.$htmlpath.‘" >‘,$text);
//}else{
// $text= str_replace($matches[0][$ak],‘<img src="‘.$htmlpath.‘" alt="‘.$title.‘">‘,$text);
//}
$text= str_replace($matches[0][$ak],‘<img src="‘.$htmlpath.‘" >‘,$text);
}
}
}
return $text;
}

以上是关于使用ThinkPHP自带的Http类下载远程图片到本地的实现代码的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP Http工具类(用于远程采集 远程下载) phpSimpleHtmlDom采集类库_Jquery筛选方式 使用phpQuery轻松采集网页内容

thinkphp 使用http扩展类 下载png等图片格式文件正常,但是下载doc,zip等文件时没有后缀

thinkphp实现文件的下载

thinkphp的http::download怎么做下载文件

用thinkphp写的一个例子:抓取网站的内容并且保存到本地

ThinkPHP - 验证码