I'm learning php and trying to write a script to extract registration information from a large text file. Sadly my meagre knowledge of php is letting me down a bit. It's a case of knowing what you want the script to do but not having the knowlege of how to 'say it'.
So i was hoping that if I posted my code here someone could either give me a few pointers on where i am going wrong or suggest a better way.
The text file data luckily has a recurring format as follows (for brevity i've only included one entry, which contains made up information):
As you can see the data has a convenient boundary at the 'from' field and the colon (or so it occurred to me) so I created my script as follows:
// the string being analysed
$the_string = "
From: [email protected]
Sent: 02 February 2011 22:50
To: Jonny tum, patsy fells, dingly bongo
Subject: Subject: Fun Run 2010
Categories: Fun Run
Name: Bella Donna
Address: 14 brondle avenue
Postcode: cd83 1rg
Phone: 0287343510
Email: [email protected]
DOB: 15/11/1945
Half or Full: Full fun run
How did you hear: Took part in 2010";
// remove all formatting to work with a clean string
$clean_string = strip_tags($the_string);
// remove form field entries from the data and replace with commas and a ZZZ boundary
$remove_fields = array("Categories:" => "","Name:" => ",","Address:" => ",","Postcode:" => ",","Phone:" =>
",","Email:" => ",","DOB:" => ",","Half or Full:" => ",","How did you hear:" => ",","From:" => "ZZZ","Sent:" =>
",","To:" => ",", );
$new_string = strtr("$clean_string",$remove_fields);
// split the data at the boundary ZZZ
$string_to_array = explode("ZZZ", $new_string);
$new_string2 = implode("</br>",$string_to_array);
echo $new_string2;
$myFile = "address_list.csv";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $new_string2;
fwrite($fh, $stringData);
fclose($fh);
One major problem is when i write the new data to a csv file the csv contains spacings that cause it to be reproduced in a column form rather than as separate fields for each comma boundary.
So can anyone suggest either
a) a better way of extracting the data from the text file (doesn't need to be 100% clean and perfect)
b) How can i stop the spaces in the csv (i thought i would have fixed this when i stripped the tags from the string at the start??).
Any help would be greatly received by a newbie phper.
It's my first shot at performing anything moderately taxing so if I've made some blaring oversites I would very much welcome your wisdom!
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.
Extracting data from a large text file...
in PHP Coding Help
Posted
Hi
I'm learning php and trying to write a script to extract registration information from a large text file. Sadly my meagre knowledge of php is letting me down a bit. It's a case of knowing what you want the script to do but not having the knowlege of how to 'say it'.
So i was hoping that if I posted my code here someone could either give me a few pointers on where i am going wrong or suggest a better way.
The text file data luckily has a recurring format as follows (for brevity i've only included one entry, which contains made up information):
From: [email protected]
Sent: 02 February 2011 22:50
To: Jonny tum, patsy fells, dingly bongo
Subject: Subject: Fun Run 2010
Categories: Fun Run
Name: Bella Donna
Address: 14 brondle avenue
Postcode: cd83 1rg
Phone: 0287343510
Email: [email protected]
DOB: 15/11/1945
Half or Full: Full fun run
How did you hear: Took part in 2010
As you can see the data has a convenient boundary at the 'from' field and the colon (or so it occurred to me) so I created my script as follows:
One major problem is when i write the new data to a csv file the csv contains spacings that cause it to be reproduced in a column form rather than as separate fields for each comma boundary.
So can anyone suggest either
a) a better way of extracting the data from the text file (doesn't need to be 100% clean and perfect)
b) How can i stop the spaces in the csv (i thought i would have fixed this when i stripped the tags from the string at the start??).
Any help would be greatly received by a newbie phper.
It's my first shot at performing anything moderately taxing so if I've made some blaring oversites I would very much welcome your wisdom!
Thank you
Drongo