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()
相关文章
- php日历之儒略日计数与法国共和历法的日期间如何相互转换
- CodeIgniter如何处理大文件上传_CodeIgniter文件传输优化【挑战】
- 如何用PHP实现CMS系统的日志记录功能
- 求一段discuz2.0 在门户页调用论坛子版块代码,多谢各位大师啦
- 什么是账户总风险率?如何建立一套自动化的风险预警模型?
- 币安交易所手机下载-币安官网安卓版7.3.5官方下载
- PythonRedis项目应用教程_缓存策略高可用架构实践
- Python Jupyter怎么改默认路径_工作目录修改与配置技巧
- 如何用PHP自定义Excel的导出及合并单元格
- C++STL算法set_union set_intersection set_difference使用
