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 ...
随机推荐
- js数据显示在文本框中(页面加载显示和按钮触动显示)
web代码如下: <!DOCTYPE html> <html> <head> <title>jsTest02.html</title> &l ...
- Java中的字符串分割 .
转自 http://blog.csdn.net/yuwenhao0518/article/details/7161059 http://longkm.blog.163.com/blog/static/ ...
- hrbustoj 1985(进制转换函数)
这个水题当然没有好说的,主要是介绍一个很牛掰的函数 strtol(b,NULL,k)这个函数可以直接把字符串b转化为k进制的数 #include<stdio.h> #include< ...
- 新手常见的python报错及解决方案
此篇文章整理新手编写代码常见的一些错误,有些错误是粗心的错误,但对于新手而已,会折腾很长时间才搞定,所以在此总结下我遇到的一些问题.希望帮助到刚入门的朋友们.后续会不断补充. 目录 1.NameErr ...
- PAT (Advanced Level) 1075. PAT Judge (25)
简单模拟题. 注意一点:如果一个人所有提交的代码都没编译通过,那么这个人不计排名. 如果一个人提交过的代码中有编译不通过的,也有通过的,那么那份编译不通过的记为0分. #include<cstd ...
- ZUFE OJ 2301 GW I (3)
Description GW 是ZUFE的神犇,有一天他想到一种神奇的变换,并且将它命名为GW变换 对于一个数字n,该变换后的值GW(n)为,先令X=n 第一步,如果X为个位数,GW(n)=X,否则执 ...
- win8 explorer 进程频繁奔溃的原因及处理
最近 , win8 系统中的 explorer 进程总是频繁奔溃 , 想想可能是最近新装或更新了什么软件引起的 . 查看了记录奔溃的详细信息 , 果不其然 , 是最近更新的快播新版本 ...
- PAT1011
With the 2010 FIFA World Cup running, 随着2010世界杯的举行 football fans the world over were becoming increa ...
- read gc log
http://www.aichengxu.com/article/Java/18368_2.html https://blogs.oracle.com/poonam/entry/understandi ...
- Keil C动态内存管理机制分析及改进(转)
源:Keil C动态内存管理机制分析及改进 Keil C是常用的嵌入式系统编程工具,它通过init_mempool.mallloe.free等函数,提供了动态存储管理等功能.本文通过对init_mem ...