PHP 下载远程图片
方法一:file_get_contents
/**-- 下载远程文件 --**/
function down_img($url){
set_time_limit(60);
if($url==""){
return false;
}
$ext=strrchr($url,".");
if($ext!=".gif" && $ext!=".jpg" && $ext!=".png" && $ext!=".jpeg"){
return false;
}
if(!file_exists($this->uploadpath)){
dir_create($this->uploadpath);
}
$filename=$this->getname($ext);
$img = file_get_contents($url);
$fp2=@fopen($this->uploadpath.$filename, "a"); //此处可加上图片存放路径
fwrite($fp2,$img);
fclose($fp2);
/*
$imgwh=getimagesize($this->uploadpath.$filename);
if($imgwh[0]>480 || $imgwh[1]>480){
$this->image->thumb($filename, 480, 480);
}*/
return $this->urlpic.$filename; //返回新的图片名称
}
/**-- 下载远程ICON .175x175-75.jpg .100x100-75.jpg 350x350-75.jpg 512x512-75.jpg --**/
function down_icon($url,$size){
if($url==""):return false;endif;
$ext='.jpg';
$num=strrpos($url,'.');
$data = substr($url, 0,$num);
$data=$data.$size; if(!file_exists($this->uploadpath)){
dir_create($this->uploadpath);
}
$filename=$this->getname($ext);
$img = file_get_contents($data);
$fp2=@fopen($this->uploadpath.$filename, "a"); //此处可加上图片存放路径
fwrite($fp2,$img);
fclose($fp2);
return $this->urlpic.$filename; //返回新的图片名称
}
/**-- 获取附件名称 @param $fileext 附件扩展名 --**/
function getname($fileext){
return date('Ymdhis').rand(100, 999).$fileext;
}
方法二:redefile
/**-- 下载远程文件 --**/
function down_img($url){
set_time_limit(60);
if($url==""){
return false;
}
$ext=strrchr($url,".");
if($ext!=".gif" && $ext!=".jpg" && $ext!=".png" && $ext!=".jpeg"){
return false;
}
if(!file_exists($this->uploadpath)){
dir_create($this->uploadpath);
}
$filename=$this->getname($ext);
ob_start(); //开启缓冲区 $opts = array(
'http'=>array(
'method'=>"GET",
'timeout'=>25,
)
);
$context = stream_context_create($opts); readfile($url, false, $context);
$img = ob_get_contents();
ob_end_clean();
$fp2=@fopen($this->uploadpath.$filename, "a"); //此处可加上图片存放路径
fwrite($fp2,$img);
fclose($fp2);
/*
$imgwh=getimagesize($this->uploadpath.$filename);
if($imgwh[0]>480 || $imgwh[1]>480){
$this->image->thumb($filename, 480, 480);
}*/
return $this->urlpic.$filename; //返回新的图片名称
}
/**-- 下载远程ICON .175x175-75.jpg .100x100-75.jpg 350x350-75.jpg 512x512-75.jpg --**/
function down_icon($url,$size){
if($url==""):return false;endif;
$ext='.jpg';
$num=strrpos($url,'.');
$data = substr($url, 0,$num);
$data=$data.$size; if(!file_exists($this->uploadpath)){
dir_create($this->uploadpath);
}
$filename=$this->getname($ext);
ob_start();
readfile($data);
$img = ob_get_contents();
ob_end_clean(); $fp2=@fopen($this->uploadpath.$filename, "a"); //此处可加上图片存放路径
fwrite($fp2,$img);
fclose($fp2); return $this->urlpic.$filename; //返回新的图片名称
}
/**-- 获取附件名称 @param $fileext 附件扩展名 --**/
function getname($fileext){
return date('Ymdhis').rand(100, 999).$fileext;
}
PHP 下载远程图片的更多相关文章
- php 下载远程图片 的几种方法(转)
1.获取远程文件大小及信息的函数 function getFileSize($url){ $url = parse_url($url); if($fp = @fso ...
- php下载远程图片方法总结(curl手动解析header)curl跳转问题解决
常用方法一般有:. file_get_contents file_put_contents readfile($file) //效率很高. 一般代码: /** * 抓取远程图片 * * @param ...
- php下载远程图片到本地
在使用 PHP 做简单的爬虫的时候,我们经常会遇到需要下载远程图片的需求,所以下面来简单实现这个需求1:使用curl 比如我们有下面这两张图片: $images = [ 'https://img.al ...
- 织梦dedecms 无法下载远程图片 fsockopen函数被禁用的解决方法
在linux服务器上fsockopen()函数被无情的禁用了(这其实是出于安全考虑,可以理解),下载远程图片的功能就没有办法使用了.找了一些资料之后,找到了解决方法,就是用stream_socket_ ...
- python多线程批量下载远程图片
python多线程使用场景:多线程采集, 以及性能测试等 . 数据库驱动类-简单封装下 mysqlDriver.py #!/usr/bin/python3 #-*- coding: utf-8 -*- ...
- thinkphp下载远程图片到本地
$url="http://www.test.com/test.jpg";//图片远程地址 $local="./Upload/test/test.jpg";//下 ...
- php 根据URL下载远程图片、压缩包、pdf等文件到本地
1.此方法可以下载图片.压缩包.pdf(亲测),应该所有类型的文件都可以下载到本地,可以试一下 //远程路径,名称,文件后缀 function downImgRar($url,$rename,$ext ...
- php中ob_get_contents、curl_multi_init、curl_init多线程下载远程图片并保存记录
php中三种方式测试图片下载效率 原文共24张不同图,每张大小在500K以上 使用时注意调整传入数组格式以及需要下载时保存地址的路径格式等 这三种方式无需额外安装扩展,方便快捷易操作[虽然效率看结果没 ...
- nodejs 下载远程图片
var express = require('express'); var request = require('request');var http = require('http');var ur ...
随机推荐
- 将自己apk打包进其他apk安装思路
把Apk 作为asset 资源编译进去,运行的时候释放出来再安装. dexclassloader加载. 动态加载. 把一个apk写成安装器,默认安装的话,需要root或者需要漏洞利用.
- 你真的会使用XMLHttpRequest吗?
看到标题时,有些同学可能会想:“我已经用xhr成功地发过很多个Ajax请求了,对它的基本操作已经算挺熟练了.” 我之前的想法和你们一样,直到最近我使用xhr时踩了不少坑儿,我才突然发现其实自己并不够了 ...
- WebDriver(Selenium2) 处理可能存在的JS弹出框
http://uniquepig.iteye.com/blog/1703103 在自动化测试过程中,有些情况下我们会遇到一些潜在的Javascript弹出框.(即某些条件下才会出现,不是固定出现),然 ...
- HDU 4557 非诚勿扰 队列、(记一次失败的SBT尝试)
非诚勿扰 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) [Problem De ...
- JAVA基础-多态
多态 polymophism: 动态绑定, 迟绑定, 指在执行期间(java), 而不是编译期间(javac), 判断所引用对象的实际类型, 根据实际类型调用响应的方法. 3个条件: 1. 继承 2. ...
- Windows系统字体与文件对照表
源:Windows系统字体与文件对照表 宋体 (TrueType) = SIMSUN.TTF 黑体 (TrueType) = simhei.ttf 楷体_GB2312 (TrueType) = sim ...
- 使用bootstrap响应式布局——手机屏幕中横向滚动显示标签页选项
导航栏到小屏幕的时候,我们的处理办法是隐藏为一个按钮.可是选项卡的标签页部分,我们的处理办法是加一个水平滚动条.但是加水平滚动条需要解决一个问题,就是宽度的问题,如果不设置宽度,他就会根据屏幕大小自适 ...
- office web apps部署(一)
准备两台服务器,A服务器作为域控制器,B服务器安装owa 1.配置域服务器A 参考 2.B服务器加入A所创建的域 参考 3.B服务器安装owa 参考 注意: 1.B服务器加入域后,使用A服务器的管理员 ...
- Python+Selenium+PhantomJS下载JavaScript异步加载网页
# -*- coding: utf-8 -*- from selenium import webdriver import selenium.webdriver.support.ui as ui fr ...
- Sping--AOP--XML
IoC: annotation AOP: XML XML比annotation用的多. beans.xml: <?xml version="1.0" encoding=&qu ...