仓酷云

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

[学习教程] PHP网站制作之用PHP编程读取汉字点阵数据

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:11:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
毕业设计作品自己个人还是觉得比较满意的,尽管有些功能考虑的不全面,也没有很好的实现。编程|汉字|数据      后台常识:
   
    简体中文国标字库(1981年订,中国大陆)。7445个字符,个中汉字6773个,包含一级汉字3755个,二级汉字3008个。采取2字节(16位二进制)编码。
   
    区位码:国标GB2312划定,一切的国标汉字与符号构成一个94×94的矩阵。在此方阵中,每行称为一个”区”,每列称为一个”位”,因而,这个方阵实践上构成了一个有94个区(区号分离为0 1到94)、每一个区内有94个位(位号分离为01到94)的汉字字符集。一个汉字地点的区号和位号复杂地组合在一同就组成了该汉字的”区位码”。在汉字的区位码中,高两位为区号,低两位为位号。因而可知,区位码与汉字或符号之间是逐一对应的。
   
    内码:汉字的内码是指在盘算机中暗示汉字的编码。机内码与区位码稍有区分。为何不直接用区位码作为盘算机内的编码呢? 这是由于汉字的区码和位码的局限都在1到94内, 假如直接用区位码作机内码, 就会与根基ASCII码抵触。 汉字的内码凡是与所利用的盘算机体系有关。今朝,关于国际大多半的盘算机体系,一个汉字的内码占两个字节,分离称为高位字节与低位字节,且这两位字节与区位码的关系以下: 内码高位=区码+A0H(H暗示十六进制) 内码低位=位码+A0H 例如,汉字”啊”的区位码为”1601″,区码和位码分离用十六进制暗示即为”1001H”,则它的内码为”B0A1H”。个中B0H为内码的高位字节,A1H为内码的低位字节。
   
    php代码:前往由0和1构成的字符串。
   
  <?php
  /**
  * 读取汉字点阵数据
  *
  * @author legend <legendsky@hotmail.com>
  * @link http://www.ugia.cn/?p=82
  * @Copyright www.ugia.cn
  */
   
  $str = "中华国民共和国" ;
   
  $font_file_name = "simsun12.fon" ; // 点阵字库文件名
  $font_width = 12 ; // 单字宽度
  $font_height = 12 ; // 单字高度
  $start_offset = 0 ; // 偏移
   
  $fp = fopen ( $font_file_name , "rb" );
   
  $offset_size = $font_width * $font_height / 8 ;
  $string_size = $font_width * $font_height ;
  $dot_string = "" ;
   
  for ( $i = 0 ; $i < strlen ( $str ); $i ++)
  {
   if ( ord ( $str { $i }) > 160 )
   {
    // 先求区位码,然后再盘算其在区位码二维表中的地位,进而得出此字符在文件中的偏移
    $offset = (( ord ( $str { $i }) - 0xa1 ) * 94 + ord ( $str { $i + 1 }) - 0xa1 ) * $offset_size ;
    $i ++;
   }
   else
   {
    $offset = ( ord ( $str { $i }) + 156 - 1 ) * $offset_size ;
   }
   
   // 读取其点阵数据
   fseek ( $fp , $start_offset + $offset , SEEK_SET );
   $bindot = fread ( $fp , $offset_size );
   
   for ( $j = 0 ; $j < $offset_size ; $j ++)
   {
    // 将二进制点阵数据转化为字符串
    $dot_string .= sprintf ( "%08b" , ord ( $bindot { $j }));
   }
  }
   
  fclose ( $fp );
   
  echo $dot_string ;
  ?>
   
    个中包含两个点阵字体文件:一个为16×16的chs16.fon,另外一个为12×12的simsun12.fon,偏移均为零。
   
不过语法好学,但是怎么用语法来实现每个人都有每个人的方式,几乎是各有千秋。然而借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。
山那边是海 该用户已被删除
沙发
发表于 2015-2-4 09:52:00 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
再见西城 该用户已被删除
板凳
发表于 2015-2-7 19:41:55 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
若相依 该用户已被删除
地板
发表于 2015-2-8 23:48:38 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
变相怪杰 该用户已被删除
5#
发表于 2015-2-13 01:50:32 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
老尸 该用户已被删除
6#
发表于 2015-2-13 21:20:45 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
柔情似水 该用户已被删除
7#
 楼主| 发表于 2015-2-23 02:59:00 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
冷月葬花魂 该用户已被删除
8#
发表于 2015-2-28 16:31:43 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
admin 该用户已被删除
9#
发表于 2015-3-7 00:09:52 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
蒙在股里 该用户已被删除
10#
发表于 2015-3-10 13:10:09 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
谁可相欹 该用户已被删除
11#
发表于 2015-3-12 21:12:29 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
再现理想 该用户已被删除
12#
发表于 2015-3-20 02:35:26 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
分手快乐 该用户已被删除
13#
发表于 2015-3-22 05:06:58 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
若天明 该用户已被删除
14#
发表于 2015-3-27 16:10:44 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
15#
发表于 2015-4-6 22:10:00 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
爱飞 该用户已被删除
16#
发表于 2015-4-22 02:12:24 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
金色的骷髅 该用户已被删除
17#
发表于 2015-5-4 11:01:23 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
小魔女 该用户已被删除
18#
发表于 2015-5-4 18:10:48 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
透明 该用户已被删除
19#
发表于 2015-5-12 01:30:46 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 17:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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