2016-04-24 148 views
-2

我试图创建一个页面,使用PHP从CSV文件中提取信息。 然后它应该使用这些信息填充产品列表。在PHP中读取CSV文件数据

这是CSV文件: CSV file image

我的代码如下:

$file = file('data-example.csv'); 
$line = array("name", "id","price", "description"); 
foreach($file as $line) { 
    $csv = explode('//',$line); 
    $item = $csv; 
    print_r($item); 

这是目前打印出整个阵列。我想知道如何访问数组上的单个节点,以便我可以将它们作为变量包含在HTML表格中。

感谢 阿里

要放大,并在回信(谢谢!): 这是修改后的代码,使用fgetcsv

if (($handle = fopen("data.csv", "r")) !== FALSE) { 
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    echo($data[1][1]);   
} 
fclose($handle); 
} 

这似乎是工作,但返回列内容。这是数据(data.csv):

"Dandelion","30","13.99","Dandelion 30 " 
"Daisy","40","20.99","Daisy 40 " 
"Cress","27","10.99","Cress 27 " 
"Coral","17","6.99","Coral 17 ", 
"Honeysuckle","40","17.99","Honeysuckle 40 " 
"Rose","27","9.99","Rose 27" 

“ (有一个在蒲公英,菊花,水芹,珊瑚,金银花和玫瑰花一个新行)

当我尝试echo($data[1]);它获得了整个列如上所述,即30 40 27 17 40 27,但echo($data[1][1]);返回 “342142”,并echo($data[1][1][1]);创建错误。 ,因为这是一个数组我不明白么?

感谢 阿里

+0

请从文件中发布实际文本,而不是图片。 –

+0

PHP有本地函数来读取CSV ..做研究? – Thamilan

+0

使用返回csv文件的行数组的fgetcsv()函数 –

回答

0

您应该使用PHP函数来读取CSV文件,如str_getcsv

喜欢的东西:

$Data = str_getcsv($CsvString, "\n"); //parse the rows 
foreach($Data as &$Row){ 
    $Row = str_getcsv($Row, ";"); //parse the items in rows 
} 

或者您可以使用fgetcsv来解析它读取CSV格式字段和行返回包含字段读取的数组,即:

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