仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1305|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网站制作之用php生成EAN_13尺度的条形码

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
#
发表于 2015-2-4 00:30:49 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。尺度|条形码   这连天看见有人法帖会商如很用php生成条形码,所以就用了点工夫学了学EAN_13尺度.EAN_13尺度是普遍利用的条码编码尺度,次要应用在商品流畅方面,好比咱们看到的商品上的条码就是这类编码尺度,还有图书上的编码尺度也是这类编码尺度.
     上面的就是我的一段代码生成的是EAN_13尺度的条码,需求php+gd 情况
    [code:1:dfc50fedcf]<?
function EAN_13($code) {
  //一个单位的宽度
  $lw = 2;
  //条码高  
  $hi = 100;
  // the guide code is no coding,is used to show the left part coding type//
  // Array guide is used to record the EAN_13 is left part coding type//
  $Guide = array(1=>'AAAAAA','AABABB','AABBAB','ABAABB','ABBAAB','ABBBAA','ABABAB','ABABBA','ABBABA');
  $Lstart ='101';
  $Lencode = array("A" => array('0001101','0011001','0010011','0111101','0100011','0110001','0101111','0111011','0110111','0001011'),
                   "B" => array('0100111','0110011','0011011','0100001','0011101','0111001','0000101','0010001','0001001','0010111'));
  $Rencode = array('1110010','1100110','1101100','1000010','1011100',
                   '1001110','1010000','1000100','1001000','1110100');     
   
  $center = '01010';
   
  $ends = '101';
  if ( strlen($code) != 13 )
   { die("UPC-A Must be 13 digits."); }
$lsum =0;
$rsum =0;
  for($i=0;$i<(strlen($code)-1);$i++)
  {
    if($i % 2)
{
// $odd += $ncode[$x]
  $lsum +=(int)$code[$i];
}else{
  $rsum +=(int)$code[$i];
}
   
  }
  $tsum = $lsum*3 + $rsum;
    if($code[12] != (10-($tsum % 10)))
{
   die("the code is bad!");
    }  

// echo $Guide[$code[0]];
  $barcode = $Lstart;
  for($i=1;$i<=6;$i++)
  {
    $barcode .= $Lencode [$Guide[$code[0]][($i-1)]] [$code[$i]];
  }
  $barcode .= $center;
   
  for($i=7;$i<13;$i++)
  {
    $barcode .= $Rencode[$code[($i)]] ;
  }
  $barcode .= $ends;
   
    $img = ImageCreate($lw*95+60,$hi+30);
  $fg = ImageColorAllocate($img, 0, 0, 0);
  $bg = ImageColorAllocate($img, 255, 255, 255);
  ImageFilledRectangle($img, 0, 0, $lw*95+60, $hi+30, $bg);
  $shift=10;
  for ($x=0;$x<strlen($barcode);$x++) {
    if (($x<4) || ($x>=45 && $x<50) || ($x >=92))  
  {  
    $sh=10;  
  } else {  
    $sh=0;  
  }
    if ($barcode[$x] == '1')  
{  
  $color = $fg;
    } else {  
  $color = $bg;  
}
    ImageFilledRectangle($img, ($x*$lw)+30,5,($x+1)*$lw+29,$hi+5+$sh,$color);
  }
  /* Add the Human Readable Label */
  ImageString($img,5,20,$hi+5,$code[0],$fg);
  for ($x=0;$x<6;$x++) {
    ImageString($img,5,$lw*(8+$x*6)+30,$hi+5,$code[$x+1],$fg);
    ImageString($img,5,$lw*(53+$x*6)+30,$hi+5,$code[$x+7],$fg);
  }
// ImageString($img,4,$lw*95+17,$hi-5,$code[12],$fg);
  /* Output the Header and Content. */
  header("Content-Type: image/png");
  ImagePNG($img);
   
}

EAN_13('6901028055048');

?>  
  多个成员之间重复做相同的工作,很容易因为交流沟通的时候没有进行一致性的文档要求而出现不明错误,严重影响开发进度,导致在预定时间内无法完成该项目或者完成的项目跟原先计划所要实现的项目功能不符合。
小魔女 该用户已被删除
18#
发表于 2015-5-1 17:23:16 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
山那边是海 该用户已被删除
17#
发表于 2015-4-22 06:15:48 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
莫相离 该用户已被删除
16#
发表于 2015-4-16 01:36:50 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
第二个灵魂 该用户已被删除
15#
发表于 2015-4-7 12:45:26 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
小妖女 该用户已被删除
14#
发表于 2015-4-1 22:11:16 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
冷月葬花魂 该用户已被删除
13#
发表于 2015-3-27 07:09:33 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
精灵巫婆 该用户已被删除
12#
发表于 2015-3-26 09:43:18 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
11#
发表于 2015-3-25 10:08:28 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
再见西城 该用户已被删除
10#
发表于 2015-3-18 02:59:23 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
兰色精灵 该用户已被删除
9#
发表于 2015-3-17 08:27:53 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
爱飞 该用户已被删除
8#
发表于 2015-3-10 17:44:06 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
若相依 该用户已被删除
7#
发表于 2015-3-5 21:14:51 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
admin 该用户已被删除
6#
发表于 2015-3-2 11:01:58 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
蒙在股里 该用户已被删除
5#
发表于 2015-2-16 06:48:50 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
金色的骷髅 该用户已被删除
地板
发表于 2015-2-12 02:57:01 | 只看该作者
实践是检验自己会不会的真理。
飘灵儿 该用户已被删除
板凳
发表于 2015-2-7 22:40:42 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
简单生活 该用户已被删除
沙发
发表于 2015-2-7 21:14:29 | 只看该作者
做为1门年轻的语言,php一直很努力。
活着的死人 该用户已被删除
楼主
发表于 2015-2-4 13:16:16 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 12:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表