commit | author | age
|
70318e
|
1 |
|
80152b
|
2 |
function getStructurePartType($structure, $part) |
70318e
|
3 |
{ |
80152b
|
4 |
$part_a = self::getPartArray($structure, $part); |
70318e
|
5 |
if (!empty($part_a)) { |
A |
6 |
if (is_array($part_a[0])) |
|
7 |
return 'multipart'; |
|
8 |
else if ($part_a[0]) |
|
9 |
return $part_a[0]; |
|
10 |
} |
733ed0
|
11 |
|
70318e
|
12 |
return 'other'; |
A |
13 |
} |
|
14 |
|
80152b
|
15 |
function getStructurePartEncoding($structure, $part) |
70318e
|
16 |
{ |
80152b
|
17 |
$part_a = self::getPartArray($structure, $part); |
70318e
|
18 |
if ($part_a) { |
A |
19 |
if (!is_array($part_a[0])) |
|
20 |
return $part_a[5]; |
|
21 |
} |
733ed0
|
22 |
|
70318e
|
23 |
return ''; |
A |
24 |
} |
|
25 |
|
80152b
|
26 |
function getStructurePartCharset($structure, $part) |
70318e
|
27 |
{ |
80152b
|
28 |
$part_a = self::getPartArray($structure, $part); |
70318e
|
29 |
if ($part_a) { |
A |
30 |
if (is_array($part_a[0])) |
|
31 |
return ''; |
|
32 |
else { |
|
33 |
if (is_array($part_a[2])) { |
|
34 |
$name = ''; |
|
35 |
while (list($key, $val) = each($part_a[2])) |
|
36 |
if (strcasecmp($val, 'charset') == 0) |
|
37 |
return $part_a[2][$key+1]; |
|
38 |
} |
|
39 |
} |
|
40 |
} |
733ed0
|
41 |
|
70318e
|
42 |
return ''; |
A |
43 |
} |
|
44 |
|
80152b
|
45 |
function getStructurePartArray($a, $part) |
70318e
|
46 |
{ |
A |
47 |
if (!is_array($a)) { |
|
48 |
return false; |
|
49 |
} |
|
50 |
if (strpos($part, '.') > 0) { |
|
51 |
$original_part = $part; |
|
52 |
$pos = strpos($part, '.'); |
|
53 |
$rest = substr($original_part, $pos+1); |
|
54 |
$part = substr($original_part, 0, $pos); |
|
55 |
if ((strcasecmp($a[0], 'message') == 0) && (strcasecmp($a[1], 'rfc822') == 0)) { |
|
56 |
$a = $a[8]; |
|
57 |
} |
|
58 |
return self::getPartArray($a[$part-1], $rest); |
|
59 |
} |
|
60 |
else if ($part>0) { |
|
61 |
if (!is_array($a[0]) && (strcasecmp($a[0], 'message') == 0) |
|
62 |
&& (strcasecmp($a[1], 'rfc822') == 0)) { |
|
63 |
$a = $a[8]; |
|
64 |
} |
|
65 |
if (is_array($a[$part-1])) |
|
66 |
return $a[$part-1]; |
|
67 |
else |
|
68 |
return $a; |
|
69 |
} |
80152b
|
70 |
else if (($part == 0) || (empty($part))) { |
70318e
|
71 |
return $a; |
A |
72 |
} |
|
73 |
} |