Thanks for the reply and help on this. I’ve had a look at the links you sent me.
Its sort of working but not correctly.
I’ve pasted the file I now have below. Can yo tell me why some of the rows in the file are showing with the correct number of fields in the line and others are showing with less?
I think its down to " marks but I don’t know how to fix this. Can you help me please?
<?php
$row = 1;
if (($handle = fopen("file.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\
";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\
";
}
}
fclose($handle);
}
function parse_csv($file,$comma=',',$quote='"',$newline="\
") {
$db_quote = $quote . $quote;
// Clean up file
$file = trim($file);
$file = str_replace("\\r\
",$newline,$file);
$file = str_replace($db_quote,'"',$file); // replace double quotes with " HTML entities
$file = str_replace(',",',',,',$file); // handle ,"", empty cells correctly
$file .= $comma; // Put a comma on the end, so we parse last cell
$inquotes = false;
$start_point = 0;
$row = 0;
for($i=0; $i<strlen($file); $i++) {
$char = $file[$i];
if ($char == $quote) {
if ($inquotes) {
$inquotes = false;
}
else {
$inquotes = true;
}
}
if (($char == $comma or $char == $newline) and !$inquotes) {
$cell = substr($file,$start_point,$i-$start_point);
$cell = str_replace($quote,'',$cell); // Remove delimiter quotes
$cell = str_replace('"',$quote,$cell); // Add in data quotes
$data[$row][] = $cell;
$start_point = $i + 1;
if ($char == $newline) {
$row ++;
}
}
}
return $data;
}
$myFile = "file.csv";
$fh = fopen($myFile, 'r');
$file = fgets($fh);
//$file = "WesternMazda_GForces/WesternMazda_GForces.csv";
/*$file ='Year,Make,Model,Description,Price
1997,Ford,E350,"ac, abs, moon",3000.00
1999,Chevy,"Venture ""Extended Edition""","",4900.00
1999,Chevy,"Venture ""Extended Edition, Very Large""","",5000.00
1996,Jeep,Grand Cherokee,"MUST SELL!
air, moon roof, loaded",4799.00';*/
print_r(parse_csv($file)); // Returns what you'd expect. See http://en.wikipedia.org/wiki/Comma-separated_values for example
?>
Here’s some of the data from the .csv file:
Feed_Id,Vehicle_ID,FullRegistration,Colour,FuelType,Year,Mileage,Bodytype,Doors,Make,Model,Variant,EngineSize,Price,Transmission,PictureRefs,ServiceHistory,PreviousOwners,Description,FourWheelDrive,Options,Comments,New,Used,Site,Origin,v5,Condition,ExDemo,FranchiseApproved,TradePrice,TradePriceExtra,ServiceHistoryText,Cap_ID
105461,397492,SL11SZN,“Metropolitan Grey”,Petrol,2011,1732,Hatchback,3,Mazda,2,TS,1349,8495,Manual,“3687-SL11SZN_1.jpg,3687-SL11SZN_2.jpg,3687-SL11SZN_3.jpg,3687-SL11SZN_4.jpg,3687-SL11SZN_5.jpg,3687-SL11SZN_6.jpg”,N,1,“Mazda2 1.3 3dr TS Air Con”,“Cloth, Black, Air conditioning, AM/FM Radio/Single CD, Anti-lock Braking System (ABS), Driver & passenger airbags, Electric door mirrors, Electric front windows, Electronic Brake Distribution (EBD), Emergency Brake Assist (EBA), Height adjustable steering column, Immobiliser, ISOFIX child seat anchorage, MAIDA system, Power-assisted steering, Remote central door locking, Supplementary Restraint System, Thatcham category 1 alarm”,“Mazda2 1.3 3dr TS Air Con”,N,Y,C,UK,N,N,N,49263
105461,397496,SK11RCO,“Sunlight Silver”,Diesel,2011,9,Estate,5,Mazda,6,TS2,2183,17495,Manual,“9391-SK11RCO_2.jpg,9391-SK11RCO_3.jpg,9391-SK11RCO_4.jpg,3691-SK11RCO_5.jpg,3691-SK11RCO_6.jpg,3691-SK11RCO_7.jpg,3691-SK11RCO_8.jpg,9391-SK11RCO_9.jpg”,N,1,“Mazda6 2.2D Estate TS2 163ps”,“Cloth, Black, 17’’ alloy wheels, 60:40 split folding rear seat, Adjustable steering wheel, Anti-lock Braking System (ABS), Automatic headlights, Automatic wipers with rain sensor, Body coloured bumpers, Body coloured door handles, Climate control, Cruise control, Dual front airbags, Dynamic Stability Control (DSC), Electric heated door mirrors, Electric windows, Electronic Brake Distribution (EBD), Emergency Stop Signalling (ESS), Front fog lamps, Front side airbags, Front/rear curtain airbags, Heat reflecting glass, Immobiliser, ISOFIX child seat anchorage, MAIDA system, Power-assisted steering, Rear Parking Sensor, Rear Vehicle Monitoring system, Remote central door locking, Thatcham category 1 alarm”,“Mazda6 2.2D Estate TS2 163ps”,N,Y,C,UK,N,N,N,47147
105461,397498,SL11SXP,Graphite,Petrol,2011,3423,Hatchback,5,Mazda,3,TS2,1598,12495,Manual,“3693-SL11SXP_1.jpg,3693-SL11SXP_2.jpg,3693-SL11SXP_3.jpg”,N,1,“Mazda3 1.6 5dr TS2”,“Cloth, Black, 16’’ alloy wheels, AM/FM Radio/Single CD, Anti-lock Braking System (ABS), Automatic climate control, Automatic headlights, Automatic wipers with rain sensor, Body coloured bumpers, Body coloured door handles, Body coloured door mirrors, Body coloured rear roof spoiler, Cruise control, Driver & passenger airbags, Dynamic Stability Control (DSC), Electric heated door mirrors, Electric power steernig, Electric windows, Electronic Brake Distribution (EBD), Emergency Brake Assist (EBA), Front fog lamps, Front side airbags, Front/rear curtain airbags, High level brake light, ISOFIX child seat anchorage, MAIDA system, Remote central door locking, Steering wheel audio controls”,“Mazda3 1.6 5dr TS2”,N,Y,C,UK,N,N,N,43576
105461,397512,SL11SZF,“Crystal White Pearl”,Diesel,2011,4697,Hatchback,5,Mazda,3,Sport,2184,17495,Manual,“3707-SL11SZF_1.jpg,3707-SL11SZF_3.jpg,9407-SL11SZF_4.jpg,3707-SL11SZF_5.jpg,3707-SL11SZF_6.jpg,3707-SL11SZF_7.jpg,3707-SL11SZF_8.jpg,3707-SL11SZF_9.jpg”,N,1,“Mazda3 2.2D 5dr Sport with Leather (185ps)”,“Leather, Black Sports, Electric driver’s seat with memory, 17’’ alloy wheels, 6 CD autochanger, 60:40 split folding rear seat, Anti-lock Braking System (ABS), Automatic air conditioning, Automatic headlights, Automatic wipers with rain sensor, Auxiliary input jack and power outlet, Bluetooth hands-free kit, Body coloured bumpers, Body coloured door handles, Body coloured door mirrors, Body coloured rear spoiler, BOSE? premium audio system, Cruise control, Driver & passenger airbags, Dynamic Stability Control (DSC), Electric heated door mirrors, Electric windows, Electronic Brake Distribution (EBD), Emergency Brake Assist (EBA), Emergency Stop Signalling (ESS), Front fog lamps, Front side airbags, Immobiliser”,“Mazda3 2.2D 5dr Sport with Leather (185ps)”,N,Y,C,UK,N,N,N,43588
105461,397514,SL11SZJ,“Stormy Blue”,Diesel,2011,5797,Hatchback,5,Mazda,6,TS,2183,15995,Manual,“3709-SL11SZJ_1.jpg,3709-SL11SZJ_2.jpg,3709-SL11SZJ_3.jpg,3709-SL11SZJ_4.jpg,3709-SL11SZJ_5.jpg,3709-SL11SZJ_6.jpg,3709-SL11SZJ_7.jpg,3709-SL11SZJ_8.jpg,3709-SL11SZJ_9.jpg”,N,1,“Mazda6 2.2D 5dr TS 163 PS”,“Cloth, Black, 16’’ alloy wheels, 60:40 split folding rear seat, Adjustable steering wheel, Anti-lock Braking System (ABS), Body coloured bumpers, Body coloured door handles, Climate control, Cruise control, Dual front airbags, Dynamic Stability Control (DSC), Electric heated door mirrors, Electric windows, Electronic Brake Distribution (EBD), Emergency Stop Signalling (ESS), Front side airbags, Front/rear curtain airbags, Heat reflecting glass, Immobiliser, ISOFIX child seat anchorage, MAIDA system, Power-assisted steering, Remote central door locking, Single CD, Steering wheel audio controls, Supplementary Restraint System, Thatcham category 1 alarm, Traction Control System (TCS), Trip computer”,“Mazda6 2.2D 5dr TS 163 PS”,N,Y,C,UK,N,N,N,47143
105461,397515,SL11SZU,“Brilliant Black”,Diesel,2011,4956,MPV,5,Mazda,5,TS2,1560,17495,Manual,“9410-SL11SZU_1.jpg,3710-SL11SZU_2.jpg,3710-SL11SZU_3.jpg,3710-SL11SZU_4.jpg,3710-SL11SZU_5.jpg,3710-SL11SZU_6.jpg,3710-SL11SZU_7.jpg,3710-SL11SZU_8.jpg,3710-SL11SZU_9.jpg”,N,1,“Mazda5 1.6D 5dr TS2”,“Cloth, Black/Black, AM/FM Radio/Single CD, Anti-lock Braking System (ABS), Automatic climate control, Automatic headlights, Automatic wipers with rain sensor, Auxiliary input jack and power outlet, Body coloured bumpers, Body coloured door handles, Body coloured door mirrors, Cruise control, Driver & passenger airbags, Dynamic Stability Control (DSC), Electric heated door mirrors, Electric windows, Electronic Brake Distribution (EBD), Emergency Brake Assist (EBA), Emergency Stop Signalling (ESS), Front side airbags, Front/rear curtain airbags, High level brake light, ISOFIX child seat anchorage, Leather steering wheel, MAIDA system, Power-assisted steering, Privacy glass for rear windows, Rear Parking Sensor”,“Mazda5 1.6D 5dr TS2”,N,Y,C,UK,N,N,N,49172
105461,397518,SL11SZK,Black,Diesel,2011,5826,Estate,5,Mazda,6,Sport,2183,20495,Manual,“3713-SL11SZK_2.jpg,3713-SL11SZK_3.jpg,9413-SL11SZK_4.jpg,9413-SL11SZK_5.jpg,3713-SL11SZK_6.jpg,3713-SL11SZK_7.jpg,9413-SL11SZK_8.jpg,3713-SL11SZK_9.jpg”,N,1,“Mazda6 2.2D Estate Sport 180 PS”,“Part Leather, Black, 18’’ alloy wheels, 6 CD autochanger, 60:40 split folding rear seat, Adaptive front lighting system, Adjustable steering wheel, Aluminium pedal set, Anti-lock Braking System (ABS), Automatic headlight levelling, Automatic headlights, Automatic wipers with rain sensor, Bi-xenon headlights, Body coloured bumpers, Body coloured door handles, BOSE? sound system, Climate control, Cruise control, Dual front airbags, Dynamic Stability Control (DSC), Electric heated door mirrors, Electric windows, Electronic Brake Distribution (EBD), Emergency Stop Signalling (ESS), Front side airbags, Front/rear curtain airbags, Headlight cleaning, Heat reflecting glass, Heated front seats, Immobiliser”,“Mazda6 2.2D Estate Sport 180 PS”,N,Y,C,UK,N,N,N,47148
105461,397521,X22NKY,“Stormy Blue”,Petrol,2009,16912,Convertible,2,Mazda,MX-5,1.8i,1798,9995,Manual,“3716-X22NKY_1.jpg,3716-X22NKY_2.jpg,3716-X22NKY_3.jpg,3716-X22NKY_4.jpg,3716-X22NKY_5.jpg,3716-X22NKY_6.jpg,3716-X22NKY_7.jpg,3716-X22NKY_8.jpg”,N,1,“Mazda MX-5 1.8i SE”,“Cloth, Black, 16’’ alloy wheels, Anti-lock Braking System (ABS), Body coloured door mirrors, Driver & passenger airbags, Electric heated door mirrors, Electric windows, Electronic Brake Distribution (EBD), Immobiliser, Leather steering wheel, MAIDA system, MX-5 branded scuff plates, Passenger airbag deactivation, Power-assisted steering, Remote central door locking, Single CD, Thatcham category 1 alarm, Twin exhausts”,“Mazda MX-5 1.8i SE”,N,Y,C,UK,N,N,N,32469
105461,397523,SM11PVV,“CLEAR WATER BLUE”,Diesel,2011,5,Estate,5,Mazda,6,TS,2183,16995,Manual,“3718-SM11PVV_1.jpg,3718-SM11PVV_2.jpg,3718-SM11PVV_3.jpg,3718-SM11PVV_4.jpg,3718-SM11PVV_5.jpg,3718-SM11PVV_6.jpg,3718-SM11PVV_7.jpg”,N,1,“Mazda6 2.2D Estate TS 163 PS”,“Cloth, Black,”,“Mazda6 2.2D Estate TS 163 PS”,N,Y,C,UK,N,N,N,47146
105461,397528,SM11PVJ,Aluminum,Diesel,2011,7,MPV,5,Mazda,5,Sport,1560,18495,Manual,“3723-SM11PVJ_1.jpg,3723-SM11PVJ_2.jpg,3723-SM11PVJ_3.jpg,3723-SM11PVJ_4.jpg,3723-SM11PVJ_5.jpg,3723-SM11PVJ_6.jpg,3723-SM11PVJ_7.jpg,3723-SM11PVJ_8.jpg,3723-SM11PVJ_9.jpg”,N,1,“Mazda5 1.6D 5dr Sport”,“Leather, Black Sports, AM/FM Radio/Single CD, Anti-lock Braking System (ABS), Automatic climate control, Automatic headlights, Automatic wipers with rain sensor, Auxiliary input jack and power outlet, Body coloured bumpers, Body coloured door handles, Body coloured door mirrors, Body coloured rear spoiler, Cruise control, Driver & passenger airbags, Dynamic Stability Control (DSC), Electric heated door mirrors, Electric sliding doors, Electric windows, Electronic Brake Distribution (EBD), Emergency Brake Assist (EBA), Emergency Stop Signalling (ESS), Front fog lamps, Front side airbags, Front/rear curtain airbags, Heated front seats, High level brake light, ISOFIX child seat anchorage, Leather steering wheel”,“Mazda5 1.6D 5dr Sport”,N,Y,C,UK,N,N,N,49173
105461,397530,ST10OSJ,“Ice Blue”,Petrol,2010,7653,Hatchback,3,Mazda,2,TS2,1349,7695,Manual,“3725-ST10OSJ_1.jpg,3725-ST10OSJ_2.jpg,3725-ST10OSJ_3.jpg,3725-ST10OSJ_4.jpg,3725-ST10OSJ_5.jpg,3725-ST10OSJ_6.jpg,3725-ST10OSJ_7.jpg,3725-ST10OSJ_8.jpg”,N,1,“Mazda2 1.3 3dr TS2”,“Cloth, Black, Anti-lock Braking System (ABS), Body coloured bumpers, Body coloured door handles, Body coloured door mirrors, Driver & passenger airbags, Electric front windows, Electric heated door mirrors, Electronic Brake Distribution (EBD), Emergency Brake Assist (EBA), Front side airbags, Front/rear curtain airbags, Immobiliser, ISOFIX child seat anchorage, MAIDA system, Manual air conditioning, Power-assisted steering, Remote central door locking, Remote fuel flap release, Thatcham category 1 alarm”,“Mazda2 1.3 3dr TS2”,N,Y,C,UK,N,N,N,40222
105461,397535,VO11NCJ,“Crystal White Pearl”,Diesel,2011,5719,4x4,5,Mazda,CX-7,“Sport Tech”,2184,23995,Manual,“3730-VO11NCJ_1.jpg,3730-VO11NCJ_2.jpg,3730-VO11NCJ_3.jpg,3730-VO11NCJ_5.jpg,3730-VO11NCJ_6.jpg,3730-VO11NCJ_7.jpg,3730-VO11NCJ_8.jpg,3730-VO11NCJ_9.jpg”,N,1,“Mazda CX-7 2.2D Sport Tech”,“Leather, Black, 6-disc CD autochanger, Anti-lock Braking System (ABS), Automatic headlight levelling, Automatic headlights, Automatic wipers with rain sensor, Body coloured bumpers, Body coloured door mirrors, Body coloured rear roof spoiler, BOSE? premium audio system, Climate control, Digital clock, Dome interior light, Dual front airbags, Dynamic Stability Control (DSC), Electric heated door mirrors, Electric windows, Electronic Brake Distribution (EBD), Emergency Brake Assist (EBA), Emergency Stop Signalling (ESS), Front centre console with storage, Front fog lamps, Front side airbags, Front/rear curtain airbags, Headlamp-on warning, Headlight cleaning, High level brake light, Immobiliser”,“Mazda CX-7 2.2D Sport Tech”,N,Y,C,UK,N,N,N,45074
105461,397539,SK59OPU,“Metropolitan Grey”,Petrol,2009,12316,Hatchback,3,Mazda,2,TS2,1349,6995,Manual,“3734-SK59OPU_1.jpg,3734-SK59OPU_2.jpg,3734-SK59OPU_3.jpg,3734-SK59OPU_4.jpg,3734-SK59OPU_5.jpg,3734-SK59OPU_6.jpg,3734-SK59OPU_7.jpg,3734-SK59OPU_8.jpg”,N,1,“Mazda2 1.3 3dr TS2”,“Cloth, Black, Anti-lock Braking System (ABS), Body coloured bumpers, Body coloured door handles, Body coloured door mirrors, Driver & passenger airbags, Electric front windows, Electric heated door mirrors, Electronic Brake Distribution (EBD), Emergency Brake Assist (EBA), Front side airbags, Front/rear curtain airbags, Immobiliser, ISOFIX child seat anchorage, MAIDA system, Manual air conditioning, Power-assisted steering, Remote central door locking, Remote fuel flap release, Thatcham category 1 alarm”,“Mazda2 1.3 3dr TS2”,N,Y,C,UK,N,N,N,40222
105461,397541,SK59PHU,“Metropolitan Grey”,Petrol,2009,8124,Convertible,2,Mazda,MX-5,1.8i,1798,9995,Manual,“3736-SK59PHU_1.jpg,3736-SK59PHU_2.jpg,3736-SK59PHU_3.jpg,3736-SK59PHU_4.jpg,3736-SK59PHU_5.jpg,3736-SK59PHU_6.jpg,3736-SK59PHU_7.jpg,3736-SK59PHU_8.jpg”,N,0,“Mazda MX-5 1.8i SE”,“Cloth, Black, 16’’ alloy wheels, Anti-lock Braking System (ABS), Body coloured door mirrors, Driver & passenger airbags, Electric heated door mirrors, Electric windows, Electronic Brake Distribution (EBD), Immobiliser, Leather steering wheel, MAIDA system, MX-5 branded scuff plates, Passenger airbag deactivation, Power-assisted steering, Remote central door locking, Single CD, Thatcham category 1 alarm, Twin exhausts”,“Mazda MX-5 1.8i SE”,N,Y,C,UK,N,N,N,32469
105461,397542,SM60GYW,Black,Diesel,2010,11784,Hatchback,5,Mazda,3,Sport,2184,15495,Manual,“3737-SM60GYW_1.jpg,3737-SM60GYW_2.jpg,3737-SM60GYW_3.jpg,3737-SM60GYW_4.jpg,3737-SM60GYW_5.jpg,3737-SM60GYW_6.jpg,3737-SM60GYW_7.jpg,3737-SM60GYW_8.jpg,3737-SM60GYW_9.jpg”,N,1,“Mazda3 2.2D 5dr Sport with Leather (185ps)”,“Leather, Black Sports, Electric driver’s seat with memory, 17’’ alloy wheels, Anti-lock Braking System (ABS), Automatic climate control, Automatic headlights, Automatic wipers with rain sensor, Body coloured bumpers, Body coloured door handles, Body coloured rear roof spoiler, BOSE? premium audio system, Cruise control, Driver & passenger airbags, Dynamic Stability Control (DSC), Electric power steernig, Electric windows, Electronic Brake Distribution (EBD), Emergency Brake Assist (EBA), Front fog lamps, Front side airbags, Front/rear curtain airbags, High level brake light, ISOFIX child seat anchorage, Leather steering wheel, MAIDA system, Privacy glass for rear windows, Remote central door locking”,“Mazda3 2.2D 5dr Sport with Leather (185ps)”,N,Y,C,UK,N,N,N,43588
105461,469188,SK09UAL,“Stormy Blue”,Petrol,2009,28847,Hatchback,5,Mazda,3,Sport,1598,7995,Manual,“6648-SK09UAL_1.jpg,6648-SK09UAL_2.jpg,6648-SK09UAL_3.jpg”,N,1,“Mazda3 1.6 5dr Sport”,“Cloth, Black Sports, 17’’ alloy wheels, 3 x 3-point rear seatbelts, 6 CD autochanger, Anti-lock Braking System (ABS), Automatic climate control, Automatic headlights, Automatic wipers with rain sensor, Body coloured door handles, Body coloured door mirrors, Body coloured side mouldings, BOSE? premium audio system, Driver & passenger airbags, Dynamic Stability Control (DSC), Electric heated door mirrors, Electric windows, Electronic Brake Distribution (EBD), Emergency Brake Assist (EBA), Front fog lamps, Front/rear curtain airbags, Headlight cleaning, High level brake light, ISOFIX child seat anchorage, MAIDA system, Power-assisted steering, Privacy glass for rear windows, Remote central locking”,“Mazda3 1.6 5dr Sport”,N,Y,C,UK,N,N,N,40030