介绍
怎么在php中使用gd库对图片进行下载?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
php代码如下:
& lt; php ? 头(“内容类型:文本/html ;, charset=utf-8"); if (!空($ _POST[& # 39;提交# 39;])){=,美元url $ _POST [& # 39; url # 39;]; ,//为了获取相对路径的图片所做的操作 ,url_fields 美元;=,parse_url ($ url); 美元,美元main_url =, url_fields[& # 39;主机# 39;]; ,base_url 美元;=,substr ($ url, 0,大小写敏感($ url, & # 39;/& # 39;) + 1); ,//获取网页内容 ,//设置代理服务器 ,opts 美元;=,阵列(& # 39;http # 39;=祝辞数组(& # 39;request_fulluri& # 39;=祝辞真的)); ,context 美元;=,stream_context_create(选择); ,content 美元;=,file_get_contents ($ url,假的,$上下文); ,//匹配img标签,将所有匹配字符串保存到数美元组比赛=,美元reg “/& lt; img。* ? src=https://www.yisu.com/?. * ?) \”。* ?>/我”; preg_match_all (reg,内容,美元$ matches); $ count=count ($ matches [0]); ($ i=0;我<美元计数;$我+ +){/*将所有图片的url转换为小写 * $ matches [1] [$ i]=函数($ matches [1] [$ i]); *///如果图片为相对路径就转化为全路径 如果(!大小写敏感(a。美元$ matches[1][我],“http”)) {//因为‘/堑?个位置 如果(大小写敏感(a。美元$ matches[1][我],'/')){ $ matches [1] [$ i]=' http://'。main_url美元。$ matches[1][我]美元; 其他}{ 美元$ matches[1][我]=$ base_url。$ matches[1][我]美元; } } }//过滤重复的图片 img_arr=array_unique美元($ matches [1]);//实例化图片下载类 美元getImg=new DownImage (); $ url_count=count ($ img_arr); ($ i=0;我来源img_arr[我]美元; $ getImg -> save_address=啊?图片/? $=$ getImg文件->下载(); } 回声”下载完成!哈哈,简单吧!”; } 类DownImage { 公共来源;美元//远程图片URL 公共save_address美元;//保存本地地址 公共set_extension美元;//设置图片扩展名 公共美元质量;//图片的质量(0 ~ 100100最佳,默认75左右)//下载方法(选用GD库图片下载) 公共函数下载(){//获取远程图片信息 信息=@getimagesize美元($ this ->来源);//获取图片扩展名 mime=美元信息(“哑剧”); $ type=substr (strrchr mime美元,“/?,1);//不同的图片类型选择不同的图片生成和保存函数 开关(类型){ 例“jpeg”: 美元img_create_func=癷magecreatefromjpeg”; 美元img_save_func=癷magejpeg”; 美元new_img_ext=癹pg”; image_quality=收取美元($ this ->质量)?$ this ->质量:100; 打破; 例“png”: 美元img_create_func=癷magecreatefrompng”; 美元img_save_func=癷magepng”; 美元new_img_ext=皃ng”; 打破; 例“bmp”: 美元img_create_func=癷magecreatefrombmp”; 美元img_save_func=癷magebmp”; 美元new_img_ext=癰mp”; 打破; 例“gif”: 美元img_create_func=癷magecreatefromgif”; 美元img_save_func=癷magegif”; 美元new_img_ext=癵if”; 打破; 例“vnd.wap.wbmp”: 美元img_create_func=癷magecreatefromwbmp”; 美元img_save_func=癷magewbmp”; 美元new_img_ext=癰mp”; 打破; 例“xbm”: 美元img_create_func=癷magecreatefromxbm”; 美元img_save_func=癷magexbm”; 美元new_img_ext=皒bm”; 打破; 默认值: 美元img_create_func=癷magecreatefromjpeg”; 美元img_save_func=癷magejpeg”; 美元new_img_ext=癹pg”; }//根据是否设置扩展名来合成本地文件名 如果收取($ this -> set_extension)) { $ ext=strrchr $ this ->来源,“。”); $ strlen=strlen ($ ext); 新名称=美元:substr ($ this ->来源,0,- strlen美元))。”。”。new_img_ext美元; 其他}{ 新名称=basename美元($ this ->来源); }//生成本地文件路径 save_address=$ this -> save_address。美元新名称; img=@ img_create_func美元($ this ->来源); 如果(收取(image_quality美元)){ save_img=@ img_save_func美元($ img save_address美元image_quality美元); 其他}{ save_img=@ img_save_func美元(img, save_address美元); } 返回save_img美元; } } ?> <形式方法=" POST " action=" "> 远程url地址: 怎么在php中使用gd库对图片进行下载