cvs: pear /Mail_Mime mimeDecode.php

From: Date: Wed, 03 Apr 2002 19:53:45 +0000
Subject: cvs: pear /Mail_Mime mimeDecode.php
Groups: php.pear.cvs 
Request: Send a blank email to pear-cvs+get-3009@lists.php.net to get a copy of this message
richard Wed Apr 3 14:53:45 2002 EDT Modified files: /pear/Mail_Mime mimeDecode.php Log: * Fixed mime numbers function and added fix for XML function Index: pear/Mail_Mime/mimeDecode.php diff -u pear/Mail_Mime/mimeDecode.php:1.24 pear/Mail_Mime/mimeDecode.php:1.25 --- pear/Mail_Mime/mimeDecode.php:1.24 Sun Mar 31 15:00:58 2002 +++ pear/Mail_Mime/mimeDecode.php Wed Apr 3 14:53:45 2002 @@ -48,7 +48,7 @@ * perhaps even message/partial. * * @author Richard Heyes <richard@phpguru.org> -* @version $Revision: 1.24 $ +* @version $Revision: 1.25 $ * @package Mail */ @@ -253,6 +253,7 @@ $this->_include_bodies ? $return->body = ($this->_decode_bodies ? $this->_decodeBody($body, $encoding) : $body) : null; break; + case 'multipart/parallel': case 'multipart/report': // RFC1892 case 'multipart/signed': // PGP case 'multipart/digest': @@ -307,16 +308,25 @@ * @param string $mime_number Internal use only. * @return array Mime numbers */ - function &getMimeNumbers(&$structure, $no_refs = false, $mime_number = '') + function &getMimeNumbers(&$structure, $no_refs = false, $mime_number = '', $prepend = '') { $return = array(); if (!empty($structure->parts)) { if ($mime_number != '') { - $return[$mime_number] = &$structure; + $structure->mime_id = $prepend . $mime_number; + $return[$prepend . $mime_number] = &$structure; } for ($i = 0; $i < count($structure->parts); $i++) { - $_mime_number = ($mime_number == '' ? $i + 1 : sprintf('%s.%s', $mime_number, $i + 1)); - $arr = &Mail_mimeDecode::getMimeNumbers($structure->parts[$i], $no_refs, $_mime_number); + + + if (!empty($structure->headers['content-type']) AND substr(strtolower($structure->headers['content-type']), 0, 8) == 'message/') { + $prepend = $prepend . $mime_number . '.'; + $_mime_number = ''; + } else { + $_mime_number = ($mime_number == '' ? $i + 1 : sprintf('%s.%s', $mime_number, $i + 1)); + } + + $arr = &Mail_mimeDecode::getMimeNumbers($structure->parts[$i], $no_refs, $_mime_number, $prepend); foreach ($arr as $key => $val) { $no_refs ? $return[$key] = '' : $return[$key] = &$arr[$key]; } @@ -325,7 +335,8 @@ if ($mime_number == '') { $mime_number = '1'; } - $no_refs ? $return[$mime_number] = '' : $return[$mime_number] = &$structure; + $structure->mime_id = $prepend . $mime_number; + $no_refs ? $return[$prepend . $mime_number] = '' : $return[$prepend . $mime_number] = &$structure; } return $return; @@ -665,7 +676,7 @@ $htab = "\t"; $crlf = "\r\n"; $output = ''; - $headers =& $input->headers; + $headers = @(array)$input->headers; foreach ($headers as $hdr_name => $hdr_value) {

« previous php.pear.cvs (#3009) next »