2016-04-24 160 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); 
} 
?>