Re: Help help help ... or something like that

From: Date: Sat, 25 Aug 2001 01:49:42 +0000
Subject: Re: Help help help ... or something like that
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-64385@lists.php.net to get a copy of this message
> >I have a burning question that needs to be looked at, and see if > someone can give me an idea of a > >way to get the desired result. Are you ready. > > > >Here is my problem, I need to strip out of an mbox file everything but > the body of the email, now > >to complicate matters this is an extremly large file, now seeing as it > is a mbox file, and there > >for has a set pattern of information display, I figure there must be > some way of striping the > >header information. <?php $days = "Mon|Tue|Wed|Thu|Fri|Sat|Sun"; $months = "Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec"; $d = "[0-9]"; # This probably needs the : escaped with \\ or \\\\ or something... # And you may need \r\n instead of just \n... $fromline = "^From $days $months $d$d $d$d:$d$d:$d$d $d$d$d$d\n\$"; #Untested code: $mbox = fopen("/path/to/mbox", 'r') or die("Could not open mailbox."); $inheaders = TRUE; while (!feof($mbox)){ # Skip headers: $line = "This is not a blank line."; # I'm not sure if it's \r\n or just \n, but this will work: while (!feof($mbox) && ($line != "\n") && $line != "\r\n"){ $line = fgets($mbox, 1000000); } # Now you can parse the contents of the email... $contactus = fgets($mbox, 1000000); if ($contactus != "Contact Us\n"){ # This is not a "Contact Us" email # Some goof sent real email here. Do something with it. } else{ $errors = 0; #Snag the subject: $subject = fgets($mbox, 1000000); $subject = explode(": ", $subject); if (count($subject) != 2){ $errors++; } else{ $subject = $subject[1]; } #Snag their state: $state = fgets($mbox, 1000000); # Are there really two colons in there?... $state = explode(":: ", $state); if (count($state) != 2){ $errors++; } else{ $state = $state[1]; } # I'm not typing the rest of the fields... # ... # Output the information you have parsed: if (!$errors){ echo "$subject\t$state\t$name\t$address\t$city\t$email\t$zip\t<BR>\n"; } else{ # This email was not processed properly. Do something with it. } # Skip to the next message: while (!feof($mbox) && !ereg($fromline, $line){ $line = fgets($mbox, 1000000); } } } ?> -- WARNING richard@zend.com address is an endangered species -- Use ceo@l-i-e.com Wanna help me out? Like Music? Buy a CD: http://l-i-e.com/artists.htm Volunteer a little time: http://chatmusic.com/volunteer.htm

« previous php.general (#64385) next »