Awah Hammad
Awah Hammad

Reputation: 165

How can I read this CSV file in PHP?

I have a CSV file with the following format:

"1512";"Wreaths";"";"1493";"1";"0";"2"
"1513";"Wrist Rests";"";"1494";"1";"0";"2"
"1514";"Wrist Watches";"";"1495";"1";"0";"2"
"1515";"Writing";"";"1496";"1";"0";"2"
"1516";"Writing, Research & Publishing Guides";"";"1497";"1";"0";"2"
"1517";"xD-Picture Cards";"";"1498";"1";"0";"2"
"1518";"Yogurt Makers";"";"1499";"1";"0";"2"
"1519";"Yucatan Peninsula";"";"1500";"1";"0";"2"
"1520";"Zip Discs";"";"1501";"1";"0";"2"
"1521";"Zurnas";"";"1502";"1";"0";"2"

Every record is on a different line and I would like to read it using PHP to import it to my database. Here is my code, which doesn't print out anything at all.

<?php
$file = fopen("all_cats.csv", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached

while(!feof($file))
{
    $line =  fgets($file);
    $json = json_decode($line, true);
    $json[0];
}
fclose($file);

Please let me know what you think and what I should do to get this to work.

Upvotes: 1

Views: 52

Answers (3)

kamal pal
kamal pal

Reputation: 4207

As mentioned in comments, you need to use fgetcsv, with the delimeter ; as per file/data

<?php
$file = fopen("all_cats.csv", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
echo '<pre>';
while(!feof($file))
{
    $line =  fgetcsv($file, 0, ';');
    print_r($line);
}
fclose($file);

Upvotes: 2

KiwiJuicer
KiwiJuicer

Reputation: 1972

Use the fgetcsv function: http://php.net/manual/en/function.fgetcsv.php

$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num Felder in Zeile $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}

Upvotes: 1

dhi_m
dhi_m

Reputation: 1265

You need to use fgetcsv to retrieve data.Please refer this site.

Upvotes: 1

Related Questions