手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

PHP全角标点转为半角

首页 > PHP >

 

PHP代码
  1. <?php   
  2. $str = "0123ABCDFWS\",.?<>{}[]*&^%#@!~()+-|:;";   
  3. echo "$str";   
  4. echo "<br>";   
  5. $str = preg_replace('/\xa3([\xa1-\xfe])/e''chr(ord(\1)-0x80)'$str);   
  6. echo $str;   
  7. ?>  

这是网上看来的代码,最初我想着,反正标点就那么多,直接用数组啥的替换一下就完事了。看了这个函数之后,发现自己了解的太少了。或者说自己的思路太狭隘了,从没有往深处这么想。看来所有的中文标点的第二个字节减去0X80(即128)所得的数字就是半角所得的数字了。而/e模式表达的是:如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换,将其作为 PHP 代码求值,并用其结果来替换所搜索的字符串。




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

« 上一篇 | 下一篇 »

1条记录访客评论

这个要顶

Post by 平凡的世界 on 2013, July 23, 10:52 AM 引用此文发表评论 #1


发表评论

评论内容 (必填):