찾다
php教程php手册gd库图片下载类实现下载网页所有图片的php代码
gd库图片下载类实现下载网页所有图片的php代码Jun 13, 2016 am 11:59 AM
contentheaderphp다운로드암호이미지 다운로드복사성취하다도서관~의친절한웹페이지

php代码如下:

复制代码 代码如下:


header("Content-type:text/html ; charset=utf-8");
if (!empty($_POST['submit'])){
$url = $_POST['url'];
//为了获取相对路径的图片所做的操作
$url_fields = parse_url($url);
$main_url = $url_fields['host'];
$base_url = substr($url,0,strrpos($url, '/')+1);
//获取网页内容
//设置代理服务器
$opts = array('http'=>array('request_fulluri'=>true));
$context = stream_context_create($opts);
$content = file_get_contents($url,false,$context);
//匹配img标签,将所有匹配字符串保存到数组$matches
$reg = "/gd库图片下载类实现下载网页所有图片的php代码/i";
preg_match_all($reg, $content, $matches);
$count = count($matches[0]);
for ($i=0; $i/*将所有图片的url转换为小写
*$matches[1][$i] = strtolower($matches[1][$i]);
*/
//如果图片为相对路径就转化为全路径
if (!strpos('a'.$matches[1][$i], 'http')){
//因为'/'是第0个位置
if (strpos('a'.$matches[1][$i], '/')){
$matches[1][$i] = 'http://'.$main_url.$matches[1][$i];
}else{
$matches[1][$i] = $base_url.$matches[1][$i];
}
}
}
//过滤重复的图片
$img_arr = array_unique($matches[1]);
//实例化图片下载类
$getImg = new DownImage();
$url_count = count($img_arr);
for ($i=0; $i$getImg->source = $img_arr[$i];
$getImg->save_address = './pic/';
$file = $getImg->download();
}
echo "下载完成!哈哈,简单吧!";
}
class DownImage{
public $source;//远程图片URL
public $save_address;//保存本地地址
public $set_extension; //设置图片扩展名
public $quality; //图片的质量(0~100,100最佳,默认75左右)
//下载方法(选用GD库图片下载)
public function download(){
//获取远程图片信息
$info = @getimagesize($this->source);
//获取图片扩展名
$mime = $info['mime'];
$type = substr(strrchr($mime, '/'), 1);
//不同的图片类型选择不同的图片生成和保存函数
switch($type){
case 'jpeg':
$img_create_func = 'imagecreatefromjpeg';
$img_save_func = 'imagejpeg';
$new_img_ext = 'jpg';
$image_quality = isset($this->quality) ? $this->quality : 100;
break;
case 'png':
$img_create_func = 'imagecreatefrompng';
$img_save_func = 'imagepng';
$new_img_ext = 'png';
break;
case 'bmp':
$img_create_func = 'imagecreatefrombmp';
$img_save_func = 'imagebmp';
$new_img_ext = 'bmp';
break;
case 'gif':
$img_create_func = 'imagecreatefromgif';
$img_save_func = 'imagegif';
$new_img_ext = 'gif';
break;
case 'vnd.wap.wbmp':
$img_create_func = 'imagecreatefromwbmp';
$img_save_func = 'imagewbmp';
$new_img_ext = 'bmp';
break;
case 'xbm':
$img_create_func = 'imagecreatefromxbm';
$img_save_func = 'imagexbm';
$new_img_ext = 'xbm';
break;
default:
$img_create_func = 'imagecreatefromjpeg';
$img_save_func = 'imagejpeg';
$new_img_ext = 'jpg';
}
//根据是否设置扩展名来合成本地文件名
if (isset($this->set_extension)){
$ext = strrchr($this->source,".");
$strlen = strlen($ext);
$newname = basename(substr($this->source,0,-$strlen)).'.'.$new_img_ext;
}else{
$newname = basename($this->source);
}

//生成本地文件路径
$save_address = $this->save_address.$newname;
$img = @$img_create_func($this->source);
if (isset($image_quality)){
$save_img = @$img_save_func($img,$save_address,$image_quality);
}else{
$save_img = @$img_save_func($img,$save_address);
}
return $save_img;
}
}
?>


远程url地址:



运行结果如图:

下载的图片本例中保存在当前目录的pic文件夹下!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
五大热门Go语言库汇总:开发必备利器五大热门Go语言库汇总:开发必备利器Feb 22, 2024 pm 02:33 PM

五大热门Go语言库汇总:开发必备利器,需要具体代码示例Go语言自从诞生以来,受到了广泛的关注和应用。作为一门新兴的高效、简洁的编程语言,Go的快速发展离不开丰富的开源库的支持。本文将介绍五大热门的Go语言库,这些库在Go开发中扮演了至关重要的角色,为开发者提供了强大的功能和便捷的开发体验。同时,为了更好地理解这些库的用途和功能,我们会结合具体的代码示例进行讲

学习Python,常用的这22个库怎能不掌握?学习Python,常用的这22个库怎能不掌握?Apr 12, 2023 am 10:25 AM

如今全球各个行业内 Python 的使用状况怎么样呢?这个问题就是我写这篇文章的初衷。我找出了22个最常用的 Python 包,希望能给你一些启发。首先我列出了最近一年内 PyPI 上下载量最高的 Python 包。我们来看看这些包的作用,它们的之间的关系,以及为什么会如此流行。1、Urllib38.93亿次下载Urllib3 是 Python 的 HTTP 客户端,它提供了许多 Python 标准库没有的功能。 线程安全 连接池 客户端 SSL/TLS 验证 使用 multipart 编码进行

PHP8.0中的国际化库PHP8.0中的国际化库May 14, 2023 pm 05:51 PM

PHP8.0中的国际化库:UnicodeCLDR和Intl扩展随着全球化的进程,开发跨语言、跨地域的应用程序变得越来越普遍。国际化是实现这一目标的重要组成部分。在PHP8.0中,引入了UnicodeCLDR和Intl扩展,这两个组件都为开发者提供了更好的国际化支持。UnicodeCLDRUnicodeCLDR(CommonLocaleDat

轻松掌握Pillow库安装方法:指南分享轻松掌握Pillow库安装方法:指南分享Jan 17, 2024 am 08:56 AM

Pillow库是Python中一个非常强大的图像处理库,它基于PythonImagingLibrary(PIL)发展而来,并在其基础上进行了优化和扩展。Pillow库提供了丰富的图像处理功能,可以处理各种类型的图像文件,并进行图像的编辑、合并、滤镜处理等操作。本文将为大家提供一个Pillow库的安装指南,帮助你轻松掌握这个强大的图像处理工具。一、安装P

XML 解析的 Java 库对比:寻找最佳解决方案XML 解析的 Java 库对比:寻找最佳解决方案Mar 09, 2024 am 09:10 AM

简介XML(可扩展标记语言)是一种用于存储和传输数据的流行格式。在Java中解析XML是许多应用程序的一个必要任务,从数据交换到文档处理。为了有效地解析XML,开发人员可以使用各种Java库。本文将比较一些最流行的XML解析库,重点关注它们的特性、功能和性能,以帮助开发人员做出明智的选择。DOM(文档对象模型)解析库JavaXMLDOMAPI:由oracle提供的标准DOM实现。它提供了一个对象模型,允许开发人员访问和操作XML文档。DocumentBuilderFactoryfactory=D

PyCharm 添加库的方法和技巧大揭秘PyCharm 添加库的方法和技巧大揭秘Feb 21, 2024 pm 10:09 PM

PyCharm添加库的方法和技巧大揭秘PyCharm是一款功能强大的Python集成开发环境,为Python开发者提供了丰富的功能和工具。在使用PyCharm进行开发的过程中,添加库是一个常见的需求。本文将详细介绍PyCharm添加库的方法和技巧,包括通过PyCharm自带的功能和使用pip工具安装库。一、通过PyCharm自

如何使用工具和库来优化C++程序?如何使用工具和库来优化C++程序?May 08, 2024 pm 05:09 PM

现代C++开发中,利用工具和库进行优化至关重要。Valgrind、Perf和LLDB等工具可识别瓶颈、测量性能并进行调试。Eigen、Boost和OpenCV等库可提升线性代数、网络I/O和计算机视觉等领域的效率。例如,使用Eigen可优化矩阵乘法,Perf可分析程序性能,Boost::Asio可实现高效网络I/O。

如何利用Java调用华为云OBS对象存储服务实现图片下载如何利用Java调用华为云OBS对象存储服务实现图片下载Jul 08, 2023 am 10:09 AM

如何利用Java调用华为云OBS对象存储服务实现图片下载引言:华为云OBS(ObjectStorageService)是一种安全可靠、高扩展性和低成本的云存储服务。它提供了灵活的存储解决方案,可以在各种场景下存储和获取大量非结构化的数据,如图片、视频、文档等。本文将介绍如何使用Java编程语言调用华为云OBS对象存储服务,实现图片下载功能。步骤1:华为云

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경