簡體   English   中英

選擇一些 csv 值以使用 php 在 html 表中導出

[英]select some csv values to export in html table with php

我已經復制了這個 php:

<?Php 
echo "<html><body><table border=1>";
$f = fopen("datos.csv", "r");
$fr = fread($f, filesize("datos.csv"));
fclose($f);
$lines = array();
$lines = explode("\r\n",$fr); // IMPORTANT the delimiter here just the "new line" \r\n, use what     u need instead of... 

for($i=0;$i<count($lines);$i++) {
    echo "<tr>";
    $cells = array(); 
    $cells = explode(",",$lines[$i]); // use the cell/row delimiter what u need!
    for($k=0;$k<count($cells);$k++) {
        echo "<td>".$cells[$k]."</td>";
    }
    // for k end
    echo "</tr>";
}
// for i end
echo "</table></body></html>";
?> 

此代碼生成 html 表。 我有一個 csv,其中一列用逗號分隔不同的值,我只想要一些值。 問題是帶有變量 $k 的循環只捕獲 value2, value4, value7 ,... 我感謝一些幫助,我正在學習 php 但我從高級模式開始 :-( 我搜索了這個網站,但沒有找到它。

將整個文件讀入內存總是危險的,最終你會發現一個大到足以炸毀腳本的文件,因為它太大而無法讀入內存。

在這種情況下使用fgetcsv()代替。 這一次從您的 csv 文件中讀取一行,放入一個數組中,然后您要做的就是選擇您實際想要處理的事件(列)。

if (($handle = fopen("datos.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 2000, ",")) !== FALSE) {

        // pick the columns you are interested in
        // remember arrays start at index 0
        echo sprintf('The bits I am interested in %s, %s, %s<br>',
                        $data[2], $data[4], $data[7]);
    }
    fclose($handle);
}

暫無
暫無

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

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