Jump to content

Drongo_III

Members
  • Posts

    579
  • Joined

  • Last visited

Posts posted by Drongo_III

  1. 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:

     

    
    // 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!

     

    Thank you

     

    Drongo

×
×
  • Create New...

Important Information

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.