动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   PHP → 阅读文章

 解码mime

作者来源: 
阅读 数 494 人次 , 2006-3-29 4:11:00 


 function decode_mime_string ($string) {
 $pos = strpos($string, '=?');
 if (!is_int($pos)) {
 return $string;
 }
 
 $preceding = substr($string, 0, $pos); // save any preceding text
 
 $search = substr($string, $pos+2, 75); /* the mime header spec says this is the longest a single encoded word can be */
 $d1 = strpos($search, '?');
 if (!is_int($d1)) {
 return $string;
 }
 
 $charset = substr($string, $pos+2, $d1);
 $search = substr($search, $d1+1);
 
 $d2 = strpos($search, '?');
 if (!is_int($d2)) {
 return $string;
 }
 
 $encoding = substr($search, 0, $d2);
 $search = substr($search, $d2+1);
 
 $end = strpos($search, '?=');
 if (!is_int($end)) {
 return $string;
 }
 
 $encoded_text = substr($search, 0, $end);
 $rest = substr($string, (strlen($preceding . $charset . $encoding . $encoded_text)+6));
 
 switch ($encoding) {
 case 'q':
 case 'q':
 $encoded_text = str_replace('_', '%20', $encoded_text);
 $encoded_text = str_replace('=', '%', $encoded_text);
 $decoded = urldecode($encoded_text);
 
 if (strtolower($charset) == 'windows-1251') {
 $decoded = convert_cyr_string($decoded, 'w', 'k');
 }
 break;
 
 case 'b':
 case 'b':
 $decoded = urldecode(base64_decode($encoded_text));
 
 if (strtolower($charset) == 'windows-1251') {
 $decoded = convert_cyr_string($decoded, 'w', 'k');
 }
 break;
 
 default:
 $decoded = '=?' . $charset . '?' . $encoding . '?' . $encoded_text . '?=';
 break;
 }
 
 return $preceding . $decoded . decode_mime_string($rest);
} // decode_mime_string()

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:一个好用的UBB类
· 下一篇:开发大型PHP项目的方法
· 如何将gbk编码转成utf8格式
· Zend Optimizer 配置指南
· 如何使用PHP中的正则表达式
· 一个比较完善的购物车类
· 让你同时上传 1000 个文件


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077