Re: HELP HELP on a file parser

From: Date: Wed, 22 Jan 2003 21:23:44 +0000
Subject: Re: HELP HELP on a file parser
Groups: php.general 
Request: Send a blank email to php-general+get-132681@lists.php.net to get a copy of this message
Fixed a couple of things in the code. Pretty good for psudo code. :) But I get this error when running. Warning: Argument #1 to array_intersect() is not an array in /home/httpd/vhosts/mccullough-net.com/httpdocs/GH/parse2.php on line 27 Warning: Wrong datatype in array_flip() call in /home/httpd/vhosts/mccullough-net.com/httpdocs/GH/parse2.php on line 32 code below. any thoughts on what might be choking it. <? //read numbers $numbers = file("bad.txt"); //read all lines from log file $fp = fopen("file2.log","r"); $log_file = fread($fp,filesize("file2.log")); $results = fopen ("results.txt", "w"); //match lines of log_file that start with 'code' //and match number preg_match_all("/^(code.*number=([0-9]+).*)$/m",$log_file,$matches); //put matches into an array such as // $array[code] = number $x=0; foreach($matches[1] as $code) { $number = $matches[2][$x++]; $log_file_array[$code] = $number; } //compute intersection of log file array //and numbers array $intersect = array_intersect($log_file_array[$code],$numbers); //flip the log array, so you now have //an array full of the lines in the log //file that matches a number in the in.txt file $answer = array_flip($intersect); fwrite ($results, $answer);
From: "1LT John W. Holmes" <holmes072000@charter.net> Reply-To: "1LT John W. Holmes" <holmes072000@charter.net> To: "Didier McGillis" <codesmoker@hotmail.com> CC: <php-general@lists.php.net> Subject: Re: [PHP] HELP HELP on a file parser Date: Wed, 22 Jan 2003 16:07:17 -0500 Okay, if I understand everything correctly, something like this may work, if you can get around the issue of your file sizes being so large, and you can deal with the amount of memory this is going to eat up, and you realize that Perl is probably better suited to the job... //read numbers $numbers = file("in.txt"); //read all lines from log file $fp = fopen("file.log","r"); $log_file = fread($fp,filesize("file.log")); //match lines of log_file that start with 'code' //and match number preg_match_all("/^(code.*number=([0-9]+).*)$/m",$log_file,$matches); //put matches into an array such as // $array[code] = number $x=0; foreach($mathes[1] as $code) { $number = $matches[2][$x++]; $log_file_array[$code] = $number; } //compute intersection of log file array //and numbers array $intersect = array_intersect($log_file_array,$numbers); //flip the log array, so you now have //an array full of the lines in the log //file that matches a number in the in.txt file $answer = array_flip($intersect); Hope that works... I can't test it. There are many ways you can do this... --John Holmes... ----- Original Message ----- From: "Didier McGillis" <codesmoker@hotmail.com> To: <holmes072000@charter.net> Sent: Tuesday, January 21, 2003 5:49 PM Subject: Re: [PHP] HELP HELP on a file parser Sorry should have done this. in.txt (there will be 470 of these #'s) - it uses these numbers to check against the chek.txt file 455784 455785 455786 455787 455788 check.txt - after it checks this file where number=389487 a number from in.txt, if it does it writes that to another file not on q/n2 24 Sat Nov 12 00:27:34 2002 3 129 code=001;number=389487;name=Blah L McBlah;type=5;big_number=888888888;time=09;min=2004; found.txt gets written to either in this format not on q/n2 24 Sat Nov 12 00:27:34 2002 3 129 code=001;number=389487;name=Blah L McBlah;type=5;big_number=888888888;time=09;min=2004; or this format code=001;number=389487;name=Blah L McBlah;type=5;big_number=888888888;time=09;min=2004 hope that helps.
From: "1LT John W. Holmes" <holmes072000@charter.net> Reply-To: "1LT John W. Holmes" <holmes072000@charter.net> To: "Didier McGillis" <codesmoker@hotmail.com>,
<php-general@lists.php.net>
Subject: Re: [PHP] HELP HELP on a file parser Date: Tue, 21 Jan 2003 17:33:36 -0500
I need some help, I think this is probably really simple and I was
wondering
if anyone had some code I could use to help me write this. I need a page to parse a text file with a list of numbers, and then
take
those numbers and parse another file with over 7MB of information
and to
look for those numbers and then to pull out the matches. Now the
file
that
its looking through each record that has a number in it is in a
specific
format with a beginnning and an end.
Can you give a short example of each file and what you want to match in each? ---John Holmes... -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
_________________________________________________________________ STOP MORE SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail
_________________________________________________________________ The new MSN 8: advanced junk mail protection and 2 months FREE* http://join.msn.com/?page=features/junkmail

« previous php.general (#132681) next »