This nigh on killed me except I solved it last night while I was asleep. Now to turn it into a loop!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>CSV12</title> </head> <body> <?php // file names.csv: /* Name,Email Address,Phone Number Bob Smith,bob@smith.com,01234567890 Martha Jones,martha@jones.com,0987643210 Joe Bloggs,joe.bloggs@gmail.com,01484522869 */ // get the file into an array $file = "names.csv"; $fileHandle = fopen("names.csv", "r"); // check that the array is a csv file if (substr(strrchr($file, '.'), 1) == "csv") { // count the number of lines in the file $lines = count(file($file)); // display the result of the count echo "<p>There are $lines lines in $file</p>"; // if there are more than 2 continue if ($lines > 1){ // this is the first line as an array, we'll be using this as the // key to our key value array $firstLine = fgetcsv($fileHandle); // print the 1st line print_r($firstLine); // this is the second line, we'll be using this as the value to // out key value array $secondLine = fgetcsv($fileHandle); // print the 2nd line print_r($secondLine); // use array_combine to use values from the 1st line as keys and // values form out 2nd line as values to out key value array $firstSecond = array_combine($firstLine, $secondLine); // print it all out nice to check print_r($firstSecond); /* <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>CSV12</title> </head> <body> <p>There are 4 lines in names.csv</p>Array ( [0] => Name [1] => Email Address [2] => Phone Number ) Array ( [0] => Bob Smith [1] => bob@smith.com [2] => 01234567890 ) Array ( [Name] => Bob Smith [Email Address] => bob@smith.com [Phone Number] => 01234567890 ) </body> </html> */ } // if less than 2 it's not a valid file else { echo "There are not enough lines to work with."; } } ?> </body> </html>
No comments:
Post a Comment