php图片本地化,PHP_php将远程图片保存到本地服务器的实现代码,php如何将远程图片本地化,本 - phpStudy...
php将远程图片保存到本地服务器的实现代码
php如何将远程图片本地化,本文分享了实现代码
//站点根目录
$cfg_basedir = dirname(__FILE__);
//停建目录属性
$cfg_dir_purview ='0755';
/*Get请求远程内容函数*/
$cookie_file = dirname(__FILE__).'/cookie.txt'; //COOKIE存放地址
function pget($url,$ref=false,$head=false){
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
if($ref){ curl_setopt($curl, CURLOPT_REFERER, $ref);//带来的Referer
}else{
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
}
curl_setopt($curl, CURLOPT_HTTPGET, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']); // 存放Cookie信息的文件名称
curl_setopt($curl, CURLOPT_COOKIEFILE,$GLOBALS ['cookie_file']); // 读取上面所储存的Cookie信息
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl);
}
if($head){ $data['head']=curl_getinfo($curl);}
curl_close($curl); // 关键CURL会话
$data['data']=$tmpInfo;
return $data; // 返回数据
}
/**
* 创建所有目录
*
* @param string $truepath 真实地址
* @param string $mmode 模式
* @return bool
*/
if ( ! function_exists('MkdirAll'))
{
function MkdirAll($truepath)
{ global $cfg_dir_purview;
if(!file_exists($truepath))
{
mkdir($truepath, $cfg_dir_purview);
chmod($truepath, $cfg_dir_purview);
return true;
}
else
{
return true;
}
}
}
/**
* 获得文章body里的外部资源
*
* @access public
* @param string $body 文档内容
* @return string
*/
function GetCurContent($body)
{
global $cfg_multi_site,$cfg_basehost,$cfg_basedir,$cfg_image_dir,$arcID,$cuserLogin,$dsql;
$cfg_uploaddir = '/c';
$basehost = "http://".$_SERVER["HTTP_HOST"];
$img_array = array();
preg_match_all("/src=[\"|'|\s]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);
$img_array = array_unique($img_array[1]);
$imgUrl = $cfg_uploaddir.'/'.date("ymd", time());
$imgPath = $cfg_basedir.$imgUrl;
if(!is_dir($imgPath.'/'))
{
MkdirAll($imgPath, $GLOBALS['cfg_dir_purview']);
CloseFtp();
}
$milliSecond = date('His',time());
foreach($img_array as $key=>$value)
{
if(preg_match("#".$basehost."#i", $value))
{
continue;
}
if(preg_match("#".$basehost."#i", $value))
{
continue;
}
if(!preg_match("#^http:\/\/#i", $value))
{
continue;
}
$http=pget($value,'$value',true);
$itype=($http['head']['content_type']);
if(!preg_match("#\.(jpg|gif|png)#i", $itype))
{
if($itype=='image/gif')
{
$itype = ".gif";
}
else if($itype=='image/png')
{
$itype = ".png";
}
else
{
$itype = '.jpg';
}
}
$milliSecondN = rand(1000,9999).rand(1000,9999);
$value = trim($value);
$rndFileName = $imgPath.'/'.$milliSecondN.'-'.$key.$itype;
$fileurl = $imgUrl.'/'.$milliSecondN.'-'.$key.$itype;
$tp = fopen($rndFileName, 'wb');
fwrite($tp, $http['data']);
fclose($tp);
if(file_exists($cfg_basedir.$fileurl))
{
$info = '';
$imginfos = GetImageSize($rndFileName, $info);
$fsize = filesize($rndFileName);
$body = str_replace($value, $fileurl, $body);
}
}
return $body;
}
//调用方式
echo GetCurContent($body);
以上就是实现远程图片本地化的全部代码,希望对大家的学习有所帮助。相关阅读:
Android如何创建桌面快捷方式
yii实现级联下拉菜单的方法
Windows 10被忽略的功能 Bing智能搜索大打折扣
Android百度地图应用之基本地图功能实现
用js代码改变单选框选中状态的简单实例
win10手机版单手式键盘使用视频教程
微软公布世界各国的Win10必备应用名单
win7系统如何关闭安全警报 win7系统安全警报的关闭方法
关于php支持分块与断点续传文件下载功能代码
浅析51个PHP处理字符串的函数
将两个div左右并列显示并实现点击标题切换内容
基于flush()不能按顺序输出时的解决办法
MySQL性能瓶颈排查定位实例详解
Win10预览版10547改进:可切换Insider账户+暂停接收会员版本
php图片本地化,PHP_php将远程图片保存到本地服务器的实现代码,php如何将远程图片本地化,本 - phpStudy...相关推荐
- asp自动解析网页中的图片地址,并将其保存到本地服务器
程序实现功能:自动将远程页面的文件中的图片下载到本地. 程序代码 <% '将本文保存为 save2local.asp '测试:save2local.asp?url=http://ent.sina ...
- PHP 将线上的图片保存到本地服务器
/***@describe 将远程的图片保存到本地服务器*@param $url 线上图片地址 necessary*@return*/public function getOnLineImg($url ...
- PHP ajax 远程下载PDF文件保存在本地服务器
在一些时候我们想ajax方式来保存一些PDF文件,尤其是它放在远程服务器上,并且是保存在我们自己的服务器上存储,这个时候我们需要写一段程序来帮助我们完成这个工作,本文介绍了PHP 远程下载PDF文件保 ...
- 获取微信用户信息后如何把微信头像保存到本地服务器
默认微信头像是一个URL地址,保存在微信的服务器上,如果授权登录后换了头像获取的头像地址就会失效,图片显示不出来体验就会比较差.解决办法就是在登录的时候把微信头像保存到本地服务器,这样就不存在这样的情 ...
- 使用java生成PDF并保存到本地服务器中
使用java生成PDF并保存到本地服务器中 1.导入maven <!-- PDF工具包 --><dependency><groupId>com.itextpdf&l ...
- 微信语音保存到本地服务器,文件格式由amr转mp3
最近开发的微信项目里面需要用到微信语音的功能,结合微信开发文档的网页js接口,语音可以在网页上生成并上传到微信服务器,但是微信服务器保存的时间有限,还是保存到自己的本地服务器比较稳当,这样需要把语音文 ...
- uniapp 生成分享图片(图片+二维码),并保存到本地相册 功能实现
生成分享图片 使用场景 在使用电商app时,通常有个分享给好友的功能,如果想要做分销类型,发展下线,也就是你邀请的好友是你的下级的话,就需要分享时将个人信息附带进去,因此会涉及到生成分享图片. 界面 ...
- 微信H5页面调起相册和摄像头,实现图片上传,并上传到本地服务器
1.config权限配置 $.ajax({url:'wx_getConfig', type:'get',dataType:'json',async:false,success:function(dat ...
- 腾讯云服务器linux远程登录,腾讯云服务器Linux系统使用SSH工具登录远程教程
对于大部分网友而言,如果我们选择腾讯云服务器的时候系统用Windows,那大部分网友都会登录的,直接在我们平时使用的WIN电脑远程连接即可操作,而且对于这个可视化操作系统对于经常玩服务器的用户来说也不 ...
最新文章
- mysql行列转换例子_mysql行列转换示例
- dedecms首页搜索 添加仿百度下拉框
- 第七讲:数据契约(2)
- Qt中的模型视图设计模式
- VTK:图片之ImageAccumulateGreyscale
- logstash的使用教程
- 函数sscanf小结
- Datastream 开发打包问题
- Java3种错误_3种常见的Class级别的错误
- mysql union all 等效_Mysql联合查询UNION和UNION ALL的使用介绍
- oracle中打钩,wps文档如何在小方块里打钩?
- Git bash和 Git GUI设置中文
- 利用R语言编写量化投资策略
- QuickCHM V2.6
- 关于dll加载失败原因总结
- vue vux x-header组件的返回图标颜色修改
- 惠普 hp3414 笔记本 电脑 驱动 drivers
- C语言--确定到底谁是凶手
- Latex常用数学编辑
- RS485网关如何对施耐德PLC进行数据采集和无线通信
热门文章
- 皮卡丘为什么不进化_神奇宝贝中皮卡丘和喵喵为什么不进化?这些理由扎心了!...
- 打包Chrome的插件扩展程序
- php switch
- 短截线匹配matlab计算输入输出阻抗
- 【解决办法】部分联芸主控NVMe固态硬盘在部分机型上导致的Linux休眠掉盘
- 帮我写8寸循环风扇分镜,需要宣传台面地面2合1 两用,循环吹风,材质肤感高级,多模式选择,上下左右摇头,做成45秒视频10个分镜脚本,并写出这10个镜头之间转场如何运镜...
- WebCollector初探——微博信息爬取
- 欠条的期限法律有没有明确的规定
- 编程培训,C++、Java、Python如何选择?
- 四年级下册计算机应用答案,小学四年级信息技术试题测试题