[英]Reading CSV file data in PHP
我正在嘗試使用 PHP 創建一個從 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.