You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
roundcubemail/program/include/rcube_mime_struct.php

74 lines
1.8 KiB
PHTML

function getStructurePartType($structure, $part)
{
$part_a = self::getPartArray($structure, $part);
if (!empty($part_a)) {
if (is_array($part_a[0]))
return 'multipart';
else if ($part_a[0])
return $part_a[0];
}
return 'other';
}
function getStructurePartEncoding($structure, $part)
{
$part_a = self::getPartArray($structure, $part);
if ($part_a) {
if (!is_array($part_a[0]))
return $part_a[5];
}
return '';
}
function getStructurePartCharset($structure, $part)
{
$part_a = self::getPartArray($structure, $part);
if ($part_a) {
if (is_array($part_a[0]))
return '';
else {
if (is_array($part_a[2])) {
$name = '';
while (list($key, $val) = each($part_a[2]))
if (strcasecmp($val, 'charset') == 0)
return $part_a[2][$key+1];
}
}
}
return '';
}
function getStructurePartArray($a, $part)
{
if (!is_array($a)) {
return false;
}
if (strpos($part, '.') > 0) {
$original_part = $part;
$pos = strpos($part, '.');
$rest = substr($original_part, $pos+1);
$part = substr($original_part, 0, $pos);
if ((strcasecmp($a[0], 'message') == 0) && (strcasecmp($a[1], 'rfc822') == 0)) {
$a = $a[8];
}
return self::getPartArray($a[$part-1], $rest);
}
else if ($part>0) {
if (!is_array($a[0]) && (strcasecmp($a[0], 'message') == 0)
&& (strcasecmp($a[1], 'rfc822') == 0)) {
$a = $a[8];
}
if (is_array($a[$part-1]))
return $a[$part-1];
else
return $a;
}
else if (($part == 0) || (empty($part))) {
return $a;
}
}