仓酷云

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

[学习教程] PHP网站制作之编码对比表的利用(2)

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:22:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。编码   <?php
/**
* 本法式用于从编码对比表装入简繁编码,使用序列化来延长装入工夫
* 同时供应两个繁简转换函数
* 利用办法:
* 在需求的法式中到场
* require_once "load_gb_big5.php";
* setchar(["big5"]);
*/

$filename = "gb_big5.txt";
if(!file_exists($filename)) {
  /**
   * 毗连并翻开对比表
   */
  $conn = mysql_connect();
  mysql_select_db("unicode");
  /**
   * 提取个中big5和gbk编码,表中big5只要13487个(包含符号)
   */
  $sql = "select gbk,big5,gb2312 from unicode where big5 != ''";
  $rs = mysql_query($sql);
  /**
   * 读取数据到数组,注重key和value的处置
   */
  $code = array(0=>"big5",gb2312=>0);

  while($row = mysql_fetch_array($rs)) {
    $code[pack("H4",$row][gbk])] = pack("H4",$row[big5]);
  }
  mysql_close($conn);
  $fp = fopen($filename,"w");
  fwrite($fp,serialize($code));
  fclose($fp);
}else {
  $fp = fopen($filename,"r");
  $code = unserialize(fread($fp,filesize($filename)));
  fclose($fp);
}

/**
* 将输出串转换成响应编码
*/
function getchar($s) {
  global $code;
  $v = "";
  for($i=0;$i<strlen($s);$i++) {
    if(ord($s[$i]) > 0x7f) {
      $p = sprintf("%02X%02X",$s[$i],$s[$i+1]);
      $p = $s[$i].$s[$i+1];
      $ch = $code[$p];
      if($ch == "")
        $ch = $s[$i].$s[$i+1];
      $v .= $ch;
      $i++;
    }else
      $v .= $s[$i];
  }
  return $v;
}

/**
* 设定转换类型并输入头
* 此函数前不克不及有其他输入
*/
function setchar($char="gb2312") {
  global $code;
  if($char != "gb2312" && $char != "big5")
    die("字符编码类型错!!!");
  if($code[0] != $char)
    $code = array_flip($code);  // 若不是指定的编码类型,则互换键
  header("Content-type: text/html; charset=$char");
}

?>
测试例:
<?php
require_once "load_gb_big5.php";
setchar("big5");

echo getchar('
比来完成了gbk、gb2312、big5的编码对比表(含其汉语拼音)的收拾整顿
现以文本文件体例供应给人人,紧缩包297k
个中:(均包含符号)
gbk  21791
big5 15863
gb2312 7478
注重数据行的",",在mysql下必需要有,不然能够失足。有的伴侣拿到的新版能够没有,请自行加上。
(2002-10-24)
有乐趣的伴侣请与我接洽,email:czjsz_ah@stats.gov.cn

文档格局:
"B6F6","","B6F6","997F","饿","e",
"B6F7","AEA6","B6F7","6069","恩","en",
"B6F8","A6D3","B6F8","800C","而","er|neng",
"B6F9","A449","B6F9","513F","儿","er|ren",
依次为:gbk、big5、gb2312、unicode、字模、拼音

mysql建表代码(请按实践情形修正):
');
?>
  你的确对PHP有兴趣,那么选择教材也是很重要的。
分手快乐 该用户已被删除
沙发
 楼主| 发表于 2015-2-4 12:50:00 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
admin 该用户已被删除
板凳
发表于 2015-2-25 22:02:54 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
飘灵儿 该用户已被删除
地板
发表于 2015-3-1 17:29:56 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
莫相离 该用户已被删除
5#
发表于 2015-3-8 12:05:20 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
若相依 该用户已被删除
6#
发表于 2015-3-15 22:27:48 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-19 12:52:57 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-27 21:05:46 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
变相怪杰 该用户已被删除
9#
发表于 2015-3-30 20:50:06 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
海妖 该用户已被删除
10#
发表于 2015-4-6 18:20:04 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
乐观 该用户已被删除
11#
发表于 2015-4-8 16:33:34 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
透明 该用户已被删除
12#
发表于 2015-4-10 15:05:49 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
爱飞 该用户已被删除
13#
发表于 2015-4-12 20:53:49 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
小魔女 该用户已被删除
14#
发表于 2015-4-12 21:57:05 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
灵魂腐蚀 该用户已被删除
15#
发表于 2015-4-27 13:24:33 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
兰色精灵 该用户已被删除
16#
发表于 2015-5-4 20:30:26 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
再现理想 该用户已被删除
17#
发表于 2015-5-6 00:11:21 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
愤怒的大鸟 该用户已被删除
18#
发表于 2015-6-10 00:14:59 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
金色的骷髅 该用户已被删除
19#
发表于 2015-6-10 22:27:09 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 16:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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