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电脑远程连接即可操作,而且对于这个可视化操作系统对于经常玩服务器的用户来说也不 ...
最新文章
- debian+pxe+preseed.cfg 安装配置
- ajax用https请求不了_Chrome滚动事件概率性Block Ajax请求
- 神经风格迁移(Neural Style Transfer)程序实现(Keras)
- linux安装libfastcommon+fastdfs+nginx
- http消息当中,post和get两种请求方式的区别
- 3500x架构_如何评价超威半导体(AMD)新发布的 锐龙(Ryzen)3500X?
- 从网络到分布式-负载均衡
- Spring 的动态数据源实现
- sap关于既是供应商又是客户的处理-转
- apache http自动跳转https_NGINX使用rewrite实现http 跳转 https
- CentOS7下EasyDarwin的安装搭建
- 语音信号处理之语音特征提取(1)机器学习的语音处理
- TwinCAT3 控制器PLC之间EAP通讯1-主机给多个从机发送
- 《Head First Java (中文第二版)》勘误
- kubernetes云原生纪元:共享存储-PVPVC(上)
- IoT企业物联网平台,从设备端到云端业务系统全链路开发实战——实践类
- 35个极好的高质量PSD源文件网站三
- linux定时发送远程邮件,实用技巧:Linux操作系统下定时发送邮件
- 机器学习--手写英文字母1--分类流程
- 「Jenkins Pipeline」- 在 Jenkinsfile 中使用共享库 @20210306
热门文章
- 【数据可视化进阶之路】第一节:看板搭建思维框架
- 本人新书 Visual C#2010开发权威指南出版-感谢大家一如既往的支持-感谢CSDN总裁蒋涛以及他率领的CSDN团队提供的支持!
- 没有鸿沟的世界-逐浪CMS全民族语言与国际版全面启航
- 法人的法定代表人怎样确定
- Kubernetes 触发 OOMKilled(内存杀手)如何排除故障
- centos6.5_firefox安装flash插件
- 修复HTTP头信息泄露Nginx版本信息漏洞
- 基于systemd添加服务自启动
- 基于android studio的百度地图(放大缩小搜索功能)
- 癸山丁向下卦(七运)