仓酷云

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

[学习教程] PHP编程:技能:PHP关于中文汉字交换与形式婚配的...

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

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

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

x
应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^     这两天正在做一个关头字加亮显示的法式,写好的法式在当地测试也跑得好好的,可是一上去页面就呈现一堆一堆的乱码,别说加亮了,几乎就是没的看!
  我就找毛病,找来找去,发明英文没有成绩,碰到汉字轻易出成绩,有的时分碰到汉字必出成绩。
  总结一下:
  当利用形式婚配的时分,如:preg_match_all($pat,……)与preg_replace($pat,……)……
  轻易出成绩的情形以下:
  preg_match_all("/(汉字)+/ism","我是汉字,看你把我怎样着!",$m_a);
  这个形式很复杂就是婚配出“汉字”。这类情形形式中包括汉字可以胜利婚配出来,然而也不要乐意得太早,了局不肯定,为何不肯定你渐渐往下看。
  必呈现成绩情形以下:
  preg_match_all("/[汉字]+/ism","我是汉字,看你把我怎样着!",$m_a);
  本想婚配呈现“汉”、“字”或“汉字”。这个必呈现成绩,婚配的了局一大群乱码,没准还会出个逝世轮回呢。为何会呈现这类情形?是由于PHP外部利用不是UNICODE,不撑持多字节文字,所以一个"汉字"就被当做4bytes的ASCII去停止形式婚配,不失足才怪呢!
  后来我又尝尝从头写一下形式婚配,发明一种仿佛(为何说仿佛?往后看)办法可以处理:
  preg_match_all("/(汉|字)+/ism","我是汉字,看你把我怎样着!",$m_a);
  如许写可以婚配出“汉”、“字”或“汉字”,$m_a中的了局
Array
(
[0] => Array
(
[0] => 汉字
)
[1] => Array
(
[0] => 字
)
)
  怎样全婚配的字符串呈现了吧!可是乐意得太早了,后来在实践顶用仍是会常常出成绩!再去找成绩,终究找到成绩的根了!PHP不撑持多字节文字,所以在停止形式婚配与字符操作的时分都是内码转化落后行的(我不晓得如许说对不合错误),举个实例吧:
  eregi_replace("性","没有" , "有义务感");这个操作就是要把字符串"有义务感"中"性"字交换成"没有",最初的了局是甚么?由于"有义务感"中没有"性"就个字,了局应当是没有履行交换操作前往"有义务感",可是了局居然是"用挥叙任感"!
  没想到吧!为何?看一下ASCII码你就分明了,2个ASCII码代码一个汉字"有义务感"的ASCII编码顺次为:211,208(有),212,240(责),200,206(任),184,208(感) 
  而"性"的编码为:208,212(性),刚好与有的第2字节和责的第1字节组合是分歧的!所以PHP就熟悉找到不异的形式停止婚配,拆成一半的汉字再与交换后的字串停止组合,所以就失足了!
  事先我想最经常使用的str_replace(),应当不会有成绩的,然而现实上str_replace()履行一样的操作也会失足!如今我想之前停止汉字交换其实是太侥幸了!多是谁人时分停止的汉字交换都是对照长的汉字串吧,不太轻易呈现以上的情形。即便没有出成绩,也要晓得那是不平安的!
  成绩是有的,任务还要持续做,克制的坚苦也就::::如今的自我了。
  好在想起一组PHP的扩大模块,Multibyte String Functions,添加很多撑持多字节文字的操作的函数,如:ereg_replace() 对应着mb_ereg_replace() 等等。详细的函数申明请查询相干的文章。
  总结:关于中文汉字平安的操作最好是利用Multibyte String Functions。
学习了六个多月PHP了,还是个新手,在这里受到了很多人的帮助,谢谢你们!
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-2-4 08:03:16 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
谁可相欹 该用户已被删除
板凳
发表于 2015-2-4 13:31:21 | 只看该作者
当然这种网站的会员费就几十块钱。
老尸 该用户已被删除
地板
发表于 2015-2-9 23:38:22 | 只看该作者
当然这种网站的会员费就几十块钱。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-28 07:27:59 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
分手快乐 该用户已被删除
6#
发表于 2015-3-4 12:11:24 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
admin 该用户已被删除
7#
发表于 2015-3-8 12:03:42 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
8#
发表于 2015-3-11 08:12:18 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
小妖女 该用户已被删除
9#
发表于 2015-3-13 08:09:48 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
若相依 该用户已被删除
10#
发表于 2015-3-20 17:16:57 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
第二个灵魂 该用户已被删除
11#
发表于 2015-3-22 18:12:43 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
蒙在股里 该用户已被删除
12#
发表于 2015-3-27 22:10:00 | 只看该作者
当然这种网站的会员费就几十块钱。
金色的骷髅 该用户已被删除
13#
发表于 2015-4-4 00:27:53 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
再现理想 该用户已被删除
14#
发表于 2015-4-21 21:12:08 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
爱飞 该用户已被删除
15#
发表于 2015-4-28 15:00:06 | 只看该作者
爱上php,他也会爱上你。
柔情似水 该用户已被删除
16#
发表于 2015-5-6 14:11:11 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
因胸联盟 该用户已被删除
17#
发表于 2015-5-11 01:13:35 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
灵魂腐蚀 该用户已被删除
18#
发表于 2015-5-11 20:20:38 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
只想知道 该用户已被删除
19#
发表于 2015-7-12 21:47:00 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 13:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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