summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2009-10-05 09:26:33 +0000
committeralecpl <alec@alec.pl>2009-10-05 09:26:33 +0000
commit7fc0b94450df4ac91de1aa7350574974e2b0a21b (patch)
tree940cc13787e2282c2e2c03d75df898fb6392cb85
parent640d305d8ddab2a16aad43602669c86fbaf14678 (diff)
- improve Content-type header parsing
-rw-r--r--program/lib/imap.inc9
1 files changed, 3 insertions, 6 deletions
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index 437ea5949..9d896ffe0 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -1592,13 +1592,10 @@ function iil_C_FetchHeaders(&$conn, $mailbox, $message_set, $uidfetch=false, $bo
$result[$id]->encoding = $string;
break;
case 'content-type':
- $ctype_parts = explode(";", $string);
+ $ctype_parts = preg_split('/[; ]/', $string);
$result[$id]->ctype = array_shift($ctype_parts);
- foreach ($ctype_parts as $ctype_add) {
- if (preg_match('/charset="?([a-z0-9\-\.\_]+)"?/i',
- $ctype_add, $regs)) {
- $result[$id]->charset = $regs[1];
- }
+ if (preg_match('/charset\s*=\s*"?([a-z0-9\-\.\_]+)"?/i', $string, $regs)) {
+ $result[$id]->charset = $regs[1];
}
break;
case 'in-reply-to':