簡體   English   中英

用 PHP 讀取 CSV 文件數據

[英]Reading CSV file data in PHP

我正在嘗試使用 PHP 創建一個從 CSV 文件中提取信息的頁面。 然后它應該用信息填充產品列表。

這是 CSV 文件: CSV 文件圖像

我的代碼如下:

$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]); 造成錯誤。 我不明白,因為這是一個數組?

謝謝阿里

您應該使用原生 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);
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM