Re: Delete first line of a csv file if it is the headers

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

 



Do one, and only one, fgetcsv() before you entere the loop?

Or, if only SOME people add the header lines to their CSV file, check
if one of the numeric fields is actually numeric, and skip any "bad"
lines.

You could even keep a counter going of which line you are on, and give
an error message if you skip any line other than the first line.

It's good to have a counter anyway, as any error message you want to
dump out for an invalid input (and you WILL get them) ought to at
least narrow it down to line and column, so somebody can actually
figure out what's wrong, eh?

On Sun, April 29, 2007 11:06 pm, Richard Kurth wrote:
>      The below script will parse a csv file to a database I need to
> remove
> the first line because it is the header files and I don't need them.
> How can
> I test for that and remove them.
>
>  $file = fopen($_POST['copy'], 'r') or $message .= "Could not open" .
> $_POST[copy] . "for reading.<BR>\n";
>                 while (!feof($file)){
>                     # We could easily be importing 10,000 records.
> Give us
> some time here, okay?
>                     set_time_limit(30);
>                     $fields = fgetcsv($file, 1000000);
>
>                     if ($fields && count($fields)){
>                         $recordcount++;
>
>                         # Wipe out every possible field, in case they
> have
> some missing:
>                         reset($possiblefields);
>                         while (list(,$fieldname) =
> each($possiblefields)){
>                             $$fieldname = '';
>                         }
>
>                         reset($_POST['fieldorder']);
>                         $fieldcount = 0;
>                         $notes = '';
>                         while (list(,$field) = each($fields)){
>                             $fieldname =
> $_POST['fieldorder'][$fieldcount++];
>                             if ($fieldname == 'notes'){
>                                 $notes .= addslashes("$field\n");
>                             }
>                             elseif ($fieldname == '-- ignore --'){
>                                 # ignore it
>                             }
>                             else{
>                                 # Note that file data is not
> Magic-Quoted:
>                                 $$fieldname = addslashes($field);
>                             }
>                         }
>                           require 'importinsert.php';
>                     }
>


-- 
Some people have a "gift" link here.
Know what I want?
I want you to buy a CD from some indie artist.
http://cdbaby.com/browse/from/lynch
Yeah, I get a buck. So?

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