喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

【村长请吃饭啊】 ---北京诚聘--- 【你还在犹豫吗?】

上一主题 下一主题
 22  1/3  1  2  3  > 
     
标题: [原创] 把万国语言转ascii码的php代码  
  本主题被作者加入到他/她的 Blog 中  
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
把万国语言转ascii码的php代码

以前花了不少时间,找可以把中文转ascii码的php代码,utf-8也只是ascii的一种。后来中手册上找到了个,把他改为了批量转换,还增加了一个常用的ascii代码还原字符。这个代码写好了有一段时间了,没什么时间把这些贴出来,大家可以看看,这个类不止只是中文的转换哟,具体请看附件

<?php 
class ascii
{
    function 
decode($str) { 
        
preg_match_all("/(d{2,5})/"$str,$a);
        
$a $a[0];
        foreach (
$a as $dec){
            if (
$dec 128) { 
                
$utf .= chr($dec); 
            } else if (
$dec 2048) { 
                
$utf .= chr(192 + (($dec - ($dec 64)) / 64)); 
                
$utf .= chr(128 + ($dec 64)); 
            } else { 
                
$utf .= chr(224 + (($dec - ($dec 4096)) / 4096)); 
                
$utf .= chr(128 + ((($dec 4096) - ($dec 64)) / 64)); 
                
$utf .= chr(128 + ($dec 64)); 
            } 
        }
        return 
$utf;
    } 
    
    function 
encode($c){
        
$len strlen($c);
        
$a 0;
        while (
$a $len){
            
$ud 0;
            if (
ord($c{$a})>=&& ord($c{$a})<=127){
                
$ud ord($c{$a});
                
$a += 1;
            }else if (
ord($c{$a})>=192 && ord($c{$a})<=223){
                
$ud = (ord($c{$a})-192)*64 + (ord($c{$a+1})-128);
                
$a += 2;
            }else if (
ord($c{$a})>=224 && ord($c{$a})<=239){
                
$ud = (ord($c{$a})-224)*4096 + (ord($c{$a+1})-128)*64 + (ord($c{$a+2})-128);
                
$a += 3;
            }else if (
ord($c{$a})>=240 && ord($c{$a})<=247){
                
$ud = (ord($c{$a})-240)*262144 + (ord($c{$a+1})-128)*4096 + (ord($c{$a+2})-128)*64 + (ord($c{$a+3})-128);
                
$a += 4;
            }else if (
ord($c{$a})>=248 && ord($c{$a})<=251){
                
$ud = (ord($c{$a})-248)*16777216 + (ord($c{$a+1})-128)*262144 + (ord($c{$a+2})-128)*4096 + (ord($c{$a+3})-128)*64 + (ord($c{$a+4})-128);
                
$a += 5;
            }else if (
ord($c{$a})>=252 && ord($c{$a})<=253){
                
$ud = (ord($c{$a})-252)*1073741824 + (ord($c{$a+1})-128)*16777216 + (ord($c{$a+2})-128)*262144 + (ord($c{$a+3})-128)*4096 + (ord($c{$a+4})-128)*64 + (ord($c{$a+5})-128);
                
$a += 6;
            }else if (
ord($c{$a})>=254 && ord($c{$a})<=255){ //error
                
$ud false;
            }
            
$scill .= "&#$ud;";
        }
        return 
$scill;
    }
}
?>
使用任何字符集看,效果都是一样的,效果地址如下:
http://qh8.net/test/class.ascii.php


 附件: 您所在的用户组无法下载或查看附件



五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-12-19 01:46 PM#1
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
剑枫 (雪花)
论坛元老
Rank: 8Rank: 8
欧玛嘎


UID 26144
精华 1
积分 4921
帖子 1684
金钱 4911 喜悦币
威望 10
人脉 0
阅读权限 90
注册 2004-2-14
来自 山东郓城
状态 离线
[推荐阅读] ewebeditor上传图片路径问题
超级强
是不是转换完后就不用设置 编码了,随便用户什么国家都可以访问




在场外支持奥运.....
2006-12-19 03:41 PM#2
查看资料  访问主页  发短消息  QQ  顶部
 
fcicq
新手上路
Rank: 1
初级会员



UID 24467
精华 0
积分 21
帖子 587
金钱 20 喜悦币
威望 0
人脉 1
阅读权限 10
注册 2003-11-8
来自 fcicq.net
状态 离线
[推荐阅读] phplib template循环嵌套?
偶倒...一看网页的代码就晕了.哈哈.




2006-12-19 07:11 PM#3
查看资料  访问主页  Blog  发短消息  顶部
 
millken
高级会员
Rank: 4



UID 73040
精华 0
积分 692
帖子 422
金钱 692 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2006-5-9
来自 REFERER
状态 离线
[推荐阅读] 今天速度快了很多啊?
超强,不过要怎么用呢,搞几个实例。
2006-12-19 08:36 PM#4
查看资料  访问主页  Blog  发短消息  顶部
 
Macaulay
高级会员
Rank: 4


UID 83520
精华 0
积分 688
帖子 438
金钱 426 喜悦币
威望 0
人脉 262
阅读权限 50
注册 2006-11-20
来自 浙
状态 离线
[推荐阅读] 快被RewriteRule搞死了
挺强悍的
2006-12-19 09:40 PM#5
查看资料  发短消息  QQ  ICQ 状态  顶部
 
槛外人
金牌会员
Rank: 6Rank: 6
我不是大哥 也不是小弟



UID 76273
精华 0
积分 1231
帖子 456
金钱 1211 喜悦币
威望 0
人脉 20
阅读权限 70
注册 2006-7-11
来自 杭州
状态 离线
[推荐阅读] 导出XLS的问题
强悍哦,
好像原创这个版有点萧条了哇
2006-12-21 09:54 AM#6
查看资料  Blog  发短消息  QQ  顶部
 
gubo1474
新手上路
Rank: 1
初级会员



UID 24325
精华 0
积分 29
帖子 40
金钱 29 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2003-11-3
来自 改网名了
状态 离线
[推荐阅读] PHP+ORACLE 实现分页
呵呵,用来注入查询的话很方便
2006-12-21 02:36 PM#7
查看资料  访问主页  发短消息  顶部
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
[推荐阅读] 关于后台安全的一点


QUOTE:
原帖由 gubo1474 于 2006-12-21 14:36 发表
呵呵,用来注入查询的话很方便
给出的例子,你是怎么注入的?虽然我的演示没有过滤,但服务器打开了转义。还有就是任何字符都是经过了acsii字符转换的。真不明白你是怎么可能注入的。




五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-12-21 11:09 PM#8
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
phphp
版主
Rank: 7Rank: 7Rank: 7
加班一族


UID 65188
精华 1
积分 178
帖子 3001
金钱 167 喜悦币
威望 10
人脉 1
阅读权限 100
注册 2005-7-20
来自 北京市海淀区
状态 离线
[推荐阅读] 创业中~~寻找技术伙伴!!(北京)
很好, $tmp = ord($c{$a});
这个是只针对utf8的吧.
coolcode有个先转成utf-16的很方便 http://www.coolcode.cn/?p=5




书到用时方恨少, 事非经过不知难
2006-12-24 09:28 AM#9
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
millken
高级会员
Rank: 4



UID 73040
精华 0
积分 692
帖子 422
金钱 692 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2006-5-9
来自 REFERER
状态 离线
[推荐阅读] 请教rewriterule写法
有一点疑问 :
虽然解决了浏览的问题,不过搜索引擎呢?
当爬虫爬到你的站时,会识别类似

<?php
&#35199;&#29677;&#29273;&#35821;&#65306;&#69;&#108;&#32;&#102;&#101;&#115;&#116;&#105;&#118;&#97;&#108;&#32;&#100
?>
这样的字符吗?

[ 本帖最后由 millken 于 2006-12-24 10:07 AM 编辑 ]




硬盘挂了,东东丢了.
2006-12-24 10:06 AM#10
查看资料  访问主页  Blog  发短消息  顶部
 22  1/3  1  2  3  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 


Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.030983 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP