跳转到主内容
极星编程网:以代码为星,赴技术山海!

试试这段代码吧,解码mime的_PHP

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()

相关文章