Re: E-Mail Filter/Parser

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



But how can i get the next key in a foreach loop?

Can't see how i can use a continue statement in that circumstance?

Am Mittwoch, den 25.01.2006, 11:28 +0200 schrieb Geoff:
> Possibly the continue statement would help you?
> 
> Geoff.
> 
> 
> On 25 Jan 2006 at 10:12, Sascha Braun - immosky AG wrote:
> 
> > Hi,
> > 
> > I started to write an E-Mail Parser so E-Mails from different Internet
> > Plattforms can be sorted automatically into an customer database.
> > 
> > Everything is working pretty fine, but only if all expected fields
> > appear in the Mail from the sending plattform.
> > 
> > But sometimes the Mails send out by a plattform doesnt contain all
> > fields the filter expects. And i dont know how to write the foreach
> > loop I am using to walk over the current field to check if the start
> > element of the next needed field occours so the parsing for the needed
> > element can stop somewhere and start reading the next field element.
> > 
> > A Filter looks like that, at the moment:
> > 
> > Array
> > (
> >     [attribute] => Array
> >         (
> >             [plattform] => plattform.com
> >         )
> > 
> >     [firstname] => Array
> >         (
> >             [attribute] => Array
> >                 (
> >                     [read_init] => Name: 
> >                     [read_from] => Name: 
> >                     [read_to] =>  
> >                 )
> > 
> >         )
> > 
> >     [name] => Array
> >         (
> >             [attribute] => Array
> >                 (
> >                     [read_init] =>  
> >                     [read_from] =>  
> >                     [read_to] => Anschrift: 
> >                 )
> > 
> >         )
> > 
> >     [adress] => Array
> >         (
> >             [attribute] => Array
> >                 (
> >                     [read_init] => Anschrift:
> >                     [read_from] => Anschrift:
> >                     [read_to] => ,
> >                 )
> > 
> >         )
> > 
> >     [plz] => Array
> >         (
> >             [attribute] => Array
> >                 (
> >                     [read_init] => ,
> >                     [read_from] => , 
> >                     [read_to] =>  
> >                 )
> > 
> >         )
> > 
> >     [city] => Array
> >         (
> >             [attribute] => Array
> >                 (
> >                     [read_init] =>  
> >                     [read_from] =>  
> >                     [read_to] => E-Mail:
> >                 )
> > 
> >         )
> > 
> >     [email] => Array
> >         (
> >             [attribute] => Array
> >                 (
> >                     [read_init] => E-Mail: 
> >                     [read_from] => E-Mail: 
> >                     [read_to] => Telefon:
> >                 )
> > 
> >         )
> > 
> >     [phone] => Array
> >         (
> >             [attribute] => Array
> >                 (
> >                     [read_init] => Telefon: 
> >                     [read_from] => Telefon: 
> >                     [read_to] => Folgender
> >                 )
> > 
> >         )
> > 
> >     [comment1] => Array
> >         (
> >             [attribute] => Array
> >                 (
> >                     [read_init] => ussert:
> >                     [read_from] => ussert:
> >                     [read_to] => Kommentar: 
> >                 )
> > 
> >         )
> > 
> >     [comment2] => Array
> >         (
> >             [attribute] => Array
> >                 (
> >                     [read_init] => Kommentar: 
> >                     [read_from] => Kommentar: 
> >                     [read_to] => ===
> >                 )
> > 
> >         )
> > 
> >     [headline] => Array
> >         (
> >             [attribute] => Array
> >                 (
> >                     [read_init] => berschrift: 
> >                     [read_from] => berschrift: 
> >                     [read_to] => Anzeige 
> >                 )
> > 
> >         )
> > 
> >     [object] => Array
> >         (
> >             [attribute] => Array
> >                 (
> >                     [read_init] => Objekt Nr: 
> >                     [read_from] => Objekt Nr: 
> >                     [read_to] => )
> >                 )
> > 
> >         )
> > 
> > )
> > 
> > And the filter funltion looks like that, at the moment:
> > 
> > private function filter_email($message)
> >     // Filter upcomming email messages into the immetix database
> >     {
> >     	
> >     	if (is_dir($this -> filter_folder)) {
> > 	
> > 			if ($filters = opendir($this -> filter_folder)) {
> > 				
> > 				while(($filter = readdir($filters)) !== false) {
> > 				
> > 					if ($filter != "." && $filter != "..") {
> > 						
> > 						$xml = new xml_mm($this -> filter_folder.$filter);
> > 						
> > 						if (!empty($xml -> email_filter['attribute']['plattform']) &&
> > substr_count(strtolower($message), $xml ->
> > email_filter['attribute']['plattform'])) {
> > 							
> > 							unset($xml -> email_filter['attribute']);
> > 							
> > 							foreach($xml -> email_filter as $key => $value) {
> > 							
> > 								if ($pos = strpos($message, $xml ->
> > email_filter[$key]['attribute']['read_init'])) {
> > 										
> > 									$message = substr($message, $pos + strlen($xml ->
> > email_filter[$key]['attribute']['read_from']), strlen($message) - $pos);
> > 								}
> > 								
> > 								$this -> element[$key] = trim(substr($message, 0,
> > strpos($message, $xml -> email_filter[$key]['attribute']['read_to'])));
> > 							}
> > 						}
> > 					}	
> > 				}
> > 				closedir($filters);
> > 			}	
> > 		}
> >     }
> > 
> > It would be nice to know how i can iterate over the next elements of the
> > email filter array till a valid field part is found and the iteration
> > can start with the next element of the filter, from the last occourance
> > of a valid read_init string.
> > 
> > Hope i described my problem well enough, otherwise please ask, because
> > this filter seems to be a pretty cool script, because there is not found
> > anything similar at google at this time :))
> > 
> > Thanks for your help.
> > 
> > Best Regards,
> > 
> > Sascha Braun
> > 
> > -- 
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> > 
> 
> 
> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux