} else {
$ret[$id]['fullmsg'] = $tmp;
}
+
+ if (!empty($c_val['stream'])) {
+ $ptr = fopen('php://temp', 'r+');
+ fwrite($ptr, $tmp);
+ $ret[$id]['fullmsg'] = $ptr;
+ }
}
break;
$tmp = substr($tmp, $val['start'], $val['length']);
}
- if (!empty($val['parse']) &&
- ($type == Horde_Imap_Client::FETCH_BODYPART)) {
- $tmp = Horde_Mime_Headers::parseHeaders($tmp);
+ if ($type == Horde_Imap_Client::FETCH_BODYPART) {
+ if (!empty($val['parse'])) {
+ $tmp = Horde_Mime_Headers::parseHeaders($tmp);
+ } elseif (!empty($val['stream'])) {
+ $ptr = fopen('php://temp', 'r+');
+ fwrite($ptr, $tmp);
+ $tmp = $ptr;
+ }
}
$ret[$id][$label][$val['id']] = $tmp;
$ret[$id]['bodytext'][$val['id']] = $tmp;
}
}
+
+ if (!empty($val['stream'])) {
+ $ptr = fopen('php://temp', 'r+');
+ fwrite($ptr, $ret[$id]['bodytext'][$val['id']);
+ $ret[$id]['bodytext'][$val['id']] = $ptr;
+ }
}
}
break;
case Horde_Imap_Client::FETCH_HEADERS:
if (empty($val['label'])) {
throw new Horde_Imap_Client_Exception('Need a unique label when doing a headers field search.');
- }
- if (empty($val['headers'])) {
+ } elseif (empty($val['headers'])) {
throw new Horde_Imap_Client_Exception('Need headers to query when doing a headers field search.');
}
$fp['parseheaders'] = !empty($val['parse']);