百胜IPOS图片处理
2018-06-19修改
对ipos_sptpk这个表添加一个字段,bj,用来标记图片是否下载成功(0为没有图片,1为有图片)
添加的时候自动添加0,图片下载成功更新为1
前景:由于不使用ERP商品目录来上传图片,导致没有生成bse格式的图片,需要手动去修改生成,然后IPOS下载图片。
部份代码为网上找的
为了解决这个问题使用自动化脚本:
本次共分2个步骤:
1、添加ipos_sptpk 这个表的内容,把商品目录里面的商品条码插入到ipos_sptpk中,以下文件设置凌晨2点自动执行
<?php
//自动生成ipos_sptpk的商品名称和图片名称
$db_host="192.168.1.xxx"; //MYSQL服务器名
$db_user="root"; //MYSQL用户名
$db_pass="xxxx"; //MYSQL用户对应密码
$db_name="xxxx"; //要操作的数据库
$link=mysql_connect($db_host,$db_user,$db_pass)or die("不能连接到服务器".mysql_error());
mysql_select_db($db_name,$link);
mysql_query("SET NAMES 'GBK'",$link);
$time=date("Y-m-d h:m:s");
$sql_cx="select pic_dm from ipos_sptpk order by id desc"; //查询最大的pic_dm
$result=mysql_query($sql_cx,$link);
$row=mysql_fetch_array($result);
$pic_dm=$row['pic_dm']+1;$sql_sptm="select spdm from com_base_shangpin where spdm not in (select spdm from ipos_sptpk)"; //查询没有生成sptpk的商品代码
$result_sptm=mysql_query($sql_sptm,$link);
while ($row_sptm=mysql_fetch_array($result_sptm)){$sql_spid="select id from com_base_shangpin where spdm='{$row_sptm['spdm']}'";$result_spid=mysql_query($sql_spid,$link);$row_spid=mysql_fetch_array($result_spid);$spid=$row_spid['id'];$sql_insert="insert into ipos_sptpk(sp_id,spdm,pic_name,pic_dm,lastchanged,bj) values ('{$spid}','{$row_sptm['spdm']}','{$row_sptm['spdm']}','{$pic_dm}','{$time}',0)"; //插入没有生成图片的商品$result_insert=mysql_query($sql_insert,$link);$pic_dm=$pic_dm+1;}?>
2、自动处理图片,设置3点自动执行
1)、从ipos_sptpk取当天下载的条码,并下载到本地服务器上
$link=mysql_connect($db_host,$db_user,$db_pass)or die("不能连接到服务器".mysql_error());
mysql_select_db($db_name,$link);
mysql_query("SET NAMES 'GBK'",$link);
$end_time=date('Y-m-d',strtotime("+1 day"));
$start_time= date('Y-m-d',strtotime("-1 week"));
$dir="../ipos_pic/zdwjj/"; //中转目录,用完删除里面的文件,等待下次使用
$dir2="../ipos_pic/big/"; //IPOS大图目录
$dir3="../ipos_pic/small/";
$sql_cx="select spdm from ipos_sptpk where lastchanged BETWEEN '{$start_time}' and '{$end_time}' and bj=0";
$result=mysql_query($sql_cx,$link);
while ($row=mysql_fetch_array($result)){
$spdm=$row['spdm'];
$url="http://192.168.1.XXX/".$spdm.".jpg";
if(check_file_exists($url)){
copy($url,$dir.$spdm.".jpg");
copy($url,$dir2.$spdm.".jpg");
$sql_update="update ipos_sptpk set bj=1 where spdm='{$spdm}'";
mysql_query($sql_update,$link);
}else{
$url="http://192.168.1.XXX/ipos/web/ipos_pic/404_big.jpg"; //此处直接下载404图片
$url2="http://192.168.1.XXX/ipos/web/ipos_pic/404_small.jpg"; //下载已经处理好的404图片,所有用同一张就行了
copy($url,$dir2.$spdm.".jpg");
copy($url2,$dir3.$spdm.".jpg");
}
}
require('slt.php'); //调用生成缩略图文件
require('del.php'); //调用删除中转目录下的文件
function check_file_exists($file){ //判断远程远程 是否存在函数// 远程文件if(strtolower(substr($file, 0, 4))=='http'){$header = get_headers($file, true);return isset($header[0]) && (strpos($header[0], '200') || strpos($header[0], '304'));// 本地文件}else{return file_exists($file);}}
2)slt.php 此为生成缩略图
<?php//处理所有文件,请设置为 '.'
error_reporting(0);
$only = '.';//如果不希望覆盖已经存在的图片 将此行设为0;
$over = 1;//是否处理GIF图,0为不处理
$regif = 0;require('funs.php');$file = array();$dir = "../ipos_pic/zdwjj/";$newdir = "../ipos_pic/small/";$w = intval(50);$h = intval(50);$d = @dir($dir) or die('目录不存在!'); while ($a=$d->read()){$type = substr(strrchr($a,"."),1);if($a!=='.' && $a!=='..'){if(is_dir($dir.'/'.$a)){$zdir[]=$a;} elseif($type=='jpg' || $type=='gif' || $type=='bmp' || $type=='png') {if(strstr($a, $only)){$file[]=$dir.'/'.$a;}} }}$rand = rand(100,999);$img = new image($dir, $newdir);$img->over = $over;$img->regif= $regif;foreach ($file as $key){$src = $img->reImg($key, $w, $h);}?>
2)funs.php
<?php
function mkdirs($l1, $l2 = 0777){if(!is_dir($l1)){mkdirs(dirname($l1), $l2); return @mkdir($l1, $l2);}return true;
}function savefile($l1, $l2=''){ if(function_exists(file_put_contents)){file_put_contents($l1, $l2);} else{$fp = @fopen($l1, 'wb');@fwrite($fp, $l2);fclose($fp);}
}function getfix($l1){return end(explode('.', $l1));
}function checkfix($l1, $l2){if(!is_array($l2)){$l2 = explode(',', str_replace(' ', '', $l2));}return in_array($l1, $l2) ? 1 : 0;
}class image{var $src; var $newsrc;var $allowtype = array('.jpg','.gif','.png','.jpeg'); var $regif = 0;var $keep = 0;var $over = 0;var $dir; var $newdir; function __construct($l1=null, $l2=null){$this->dir = $l1 ? $l1 : "./images/temp";$this->newdir = $l2 ? $l2 : "./images/s";}function image($l1=null, $l2=null){$this->__construct($l1, $l2);}function reName($src){$l1 = substr(md5($src),10,10).strrchr($src,"."); $l1 = $this->w.'_'.$this->h.'_'.$l1; return $this->newdir.'/'.$l1;}function Mini($src,$w,$h, $q=80){ $this->src = $src;$this->w = $w;$this->h = $h;if(strrchr($src, ".") == ".gif" && $this->regif == 0){return $this->src;} if(!$this->keep){$newsrc = $this->reName($src);} else {$src = str_replace('\\', '/', $src);$newsrc = $this->newdir.strrchr($src, "/");}if(file_exists($newsrc) && $this->over == 0){return $newsrc;}if(strstr($src, "http://") && !strstr($src, $_SERVER['HTTP_HOST'])){$src = $this->getimg($src);} $arr = getimagesize($src); $ow = $arr[0];$oh = $arr[1];$ot = $arr[2]; switch($ot){case 1:$im = imagecreatefromgif($src);break;case 2:$im = imagecreatefromjpeg($src);break;case 3:$im = imagecreatefrompng($src);break;default:return 0;}$nim = imagecreatetruecolor($w,$h);$k1 = round($h/$w,2);$k2 = round($oh/$ow,2);if ($k1<$k2){$oow = $ow;$ooh = round($ow*$k1);$sw = 0;$sh = ($oh-$ooh)/2;}else {$oow = $oh/$k1;$ooh = $oh;$sw = ($ow-$oow)/2;$sh = 0;}if(function_exists(imagecopyresampled)){imagecopyresampled($nim,$im,0,0,$sw,$sh,$w,$h,$oow,$ooh); }else {imagecopyresized($nim,$im,0,0,$sw,$sh,$w,$h,$oow,$ooh);}if(!is_dir($this->newdir)){@mkdir($this->newdir);} switch($ot){case 1:$rs = imagegif($nim,$newsrc);break;case 2:$rs = imagejpeg($nim,$newsrc,$q);break;case 3:$rs = imagepng($nim,$newsrc);break;default:return 0;}return $newsrc; }function getimg($l1){$l2 = $this->dir.'/'.substr(md5($l1),10,10).strrchr($l1,".");if(file_exists($l2)){ return $l2;}$img = file_get_contents($l1); if($img){if(!is_dir($this->dir)){@mkdir($this->dir);} savefile($l2, $img);return $l2;} }function reImg($src, $w, $h, $q=80){$this->keep = 1;return $this->Mini($src, $w, $h, $q);}
}
3)del.php
删除中转目录中的文件
<?php
function delDirAndFile( $dirName )
{
if ( $handle = opendir( "$dirName" ) ) {
while ( false !== ( $item = readdir( $handle ) ) ) {
if ( $item != "." && $item != ".." ) {
if ( is_dir( "$dirName/$item" ) ) {
delDirAndFile( "$dirName/$item" );
} else {
if( unlink( "$dirName/$item" ) );
}
}
}
closedir( $handle );
}
} delDirAndFile('../ipos_pic/zdwjj');
?>
百胜IPOS图片处理相关推荐
- 一个肯德基拖着6个“拖油瓶”的百胜中国,如何赢下中国市场?
文/韦恪之 来源/螳螂财经(ID:TanglangFin) 肯德基对于大家来说并不陌生,这家屹立在各个城市最繁华地段的餐饮店自从进入中国市场后生意一直非常火爆,消费者年纪覆盖儿童到老人,企业营收逐年上 ...
- Barsetto百胜图BAV01办公首选咖啡机
在重要客户到访时,一杯醇香地道的好咖啡,可以给予客户轻松的感觉,同时也能彰显公司的品味.在激烈的谈中,有时候有点枯燥和乏味,来一杯芳香四溢的咖啡,可以提高谈判效率.下午时间,员工疲惫而无精打采的状态, ...
- 对标海底捞?百胜中国市值有望超过海底捞吗?
文丨陈曦 来源丨螳螂财经(ID:TanglangFin) 近日有消息称,百胜中国(YUMC)已经以保密形式,向港交所递交了筹资规模或约20亿美元的香港上市申请.若消息为真,这将是继京东.网易之后,又一 ...
- 笔试面试记录(百胜餐饮西安研发)
百胜餐饮–餐饮公司和KFC,麦当劳,小肥羊等有合作,具体上网自行搜索 1.笔试(现场答卷,自由时间,大概45分钟) 1.熟悉的网络协议有哪些,一句话说明其作用 2.线程和进程的区别.进程/线程之间的通 ...
- 百胜软件携手天猫助力多品牌粉丝节全渠道打通
6月20日,2016年天猫粉丝节圆满收官! 据悉,今年618期间,天猫服饰与绫致.GAP.欧时力.艾格.Mo&Co.GXG.周大福.达芙妮.舒华等30个品牌实现100%全渠道互通,天猫与线下同 ...
- 百胜软件2016年双十一项目正式启动
7月29日下午,百胜软件2016年双十一项目正式启动.百胜软件公司高层领导.各分公司总经理及项目组成员参加了启动会. 百胜软件副总裁马龙飞首先致辞,马总表示,今年双十一一定是全渠道玩法,百胜软件在践行 ...
- 喜报!第四范式助推百胜中国斩获2020 IDC数字化转型重磅大奖
10月16日,由国际权威研究机构IDC主办的"2020 IDC中国数字化转型颁奖典礼"隆重举行.凭借明确的数字化转型战略思路以及第四范式全方位AI能力的深度赋能, 百胜中国AI中台 ...
- 阿里云POLARDB如何帮助百胜软件应对数据库的“巅峰时刻”
POLARDB是阿里云自研的下一代关系型云数据库,100%兼容MySQL,存储容量最高可达100TB,性能最高提升至MySQL的6倍,适用于企业多样化的数据库应用场景.POLARDB采用存储和计算分离 ...
- 百胜软件牵手晨光文具打造电商信息化平台
近日,百胜软件与晨光集团达成签约合作,这标示这百胜软件在跨行业发展又添大咖级品牌. 晨光文具是国内文具第一品牌,是一家整合创意价值与服务优势,专注于文具产业的综合文具公司.产品涵盖书写工具.学生文具. ...
最新文章
- 【前沿视点】Web Lab——鼓舞人心的谷歌 Chrome 实验室
- ML之分类预测:基于sklearn库的七八种机器学习算法利用糖尿病(diabetes)数据集(8→1)实现二分类预测
- 客户端相关知识学习(三)之Android原生与H5交互的实现
- log4j中配置日志文件相对路径方法
- 初识Mysql(part2)--我需要知道的8个Mysql语句
- 学术、科研、教育……这几个高质量公共号帮你一网打击
- SilverLight中的基本图形(转)
- 200与mcgs485实例 smart_SMAART200与MCGS-工业支持中心-西门子中国
- 雷达波位编排matlab仿真
- 计算机学习思维的培养
- 【转】ARM GIC中断系列(八):gicv3架构-波形为例、系列总结
- SSO(single sign on)模式 单点登录
- Java SDK和Java JDK的区别
- 通过sql语句查询实现分页
- 中国分电器及点火线圈市场现状研究分析与发展前景预测报告(2022)
- 海明威的《老人与海》人生感悟
- 生活中不可缺少的日常小知识(转载)
- 一篇不错的Android Audio架构代码梳理总结
- 201671010402-陈靖 实验十四 团队项目评审课程学习总结
- 基于JAVA校园一卡通管理系统计算机毕业设计源码+系统+数据库+lw文档+部署
热门文章
- 关于前后端分离 的腹黑意淫
- ABB机器人线速度_ABB机器人发生不一致路径精确性故障维修
- 【转】QPushButton的背景图片和文字同时显示
- 精美LOGO设计欣赏的200佳网站推荐(系列十四)
- LADP打通Gitlab(全指南)
- c语言 电池电量检测,基于单片机的锂离子电池电量检测系统设计(本科).doc
- 使用VirtualBox+Vagrant搭建自己的Laravel开发环境
- 国家天地图API 循环添加点 参数传递问题
- 你真的了解ui-h5前端页面技术吗?
- 菜尼奥排错之merge6 = merge([drop4,up6], mode = ‘concat‘...)TypeError: ‘module‘ object is not callable