函数decode_mime_string ($string) { $pos = strpos($string, =?); if (!is_int($pos)) { return $string; } $preceding = substr($string, 0, $pos); // 保存任何前面的文本 $search = substr($string, $pos 2, 75); /* mime 标头规范表明这是单个编码单词可以达到的最长长度 */ $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) { 案例 Q: 案例 q: $encoded_text = str_replace(_, , $encoded_text); $encoded_text = str_replace(=, %, $encoded_text); $解码= urldecode($encoded_text); if (strtolower($charset) == windows-1251) { $decoded = Convert_cyr_string($decoded, w, k); } 休息;情况 B: 情况 B:$decoded = urldecode(base64_decode($encoded_text)); if (strtolower($charset) == windows-1251) { $decoded = Convert_cyr_string($decoded, w, k); } 休息;默认值:$已解码= =? 。 $字符集。 ? 。 $编码。 ? 。 $encoded_text 。 ?=;休息;返回 $ 前面的内容。 $已解码。解码_mime_string($rest); } //decode_mime_string()