如何使用PHP将.csv文件内容操作到HTML表中?

时间:2016-04-05 17:40:30

标签: php csv

好的,这是我到目前为止所得到的:

<table class="tftable" border="1">
    <tr><th>Header 1</th><th>Header 2</th><th>Header 3</th><th>Header 4</th><th>Header 5</th><th>Header 6</th><th>Header 7</th></tr>
    <?php
        define('CSV_PATH','/Applications/XAMPP/xamppfiles/htdocs/SITEPREVIEW/csv_file_drop_folder/');
        $csv_file = CSV_PATH . "test.csv";
        if(($handle=fopen($csv_file,"r"))!== FALSE){
            fgetcsv($handle);
            while(($data=fgetcsv($handle,1000,","))!==FALSE){
                $num = count($data);
                for($c=0;$c<$num;$c++){
                    $col[$c]=$data[$c];
                }
                $col1=$col[0];
                $col2=$col[1];
                $col3=$col[2];
                $col4=$col[3];
                $col5=$col[4];
                $col6=$col[5];
                $col7=$col[6];

                echo "<tr><th>".$col1."</th><th>".$col2."</th><th>".$col3."</th><th>".$col4."</th><th>".$col5."</th><th>".$col6."</th><th>".$col7."</th></tr>";
            }
            fclose($handle);
        }
    ?>
</table>

所以我运行此($data=fgetcsv($handle,1000,","))即将出现FALSE我认为,但不确定原因,因此只有标题会打印到页面上。

摆脱fgetcsv($handle);,但只打印一行,我检查了.csv文件的文件内容,这就是我所拥有的:

CSV FILE CONTENTS

1 个答案:

答案 0 :(得分:0)

摆脱这条线:

fgetcsv($handle);

那是:

if(($handle=fopen($csv_file,"r"))!== FALSE){
     while ( ( $data = fgetcsv($handle, 1000, ",") ) !== FALSE ) {

如果只打印一行,请检查csv上的行结尾。确保它们是/ n或/ r / n

  

注意:如果PHP在阅读时没有正确识别行结尾   Macintosh计算机上或由Macintosh计算机创建的文件,启用   auto_detect_line_endings运行时配置选项可能会有所帮助   解决问题。 http://php.net/manual/en/function.fgetcsv.php

我假设csv可能是在mac中生成的。我不是肯定的,但我相信发生的事情是你的第一个fgetcsv读取你的csv的第一行(也是唯一的),所以第二个,在while循环中,正确地注意到没有更多的行要读,所以返回FALSE,从而在开始之前终止循环。

如果csv是自动生成的,那么你想在这个问题上纠正这个问题,如果它是在Mac上创建的,理想情况下创建它的工具会被修正为使用unix样式\ n行结尾。如果不能轻易完成,只需在代码编辑器中打开csv,配置为保存/转换行结尾为unix样式,并在加载前保存。

  

LF:Multics,Unix和类Unix系统(Linux,OS X,FreeBSD,AIX,   Xenix等),BeOS,Amiga,RISC OS等[1]

     

CR:Commodore 8位计算机,Acorn BBC,ZX Spectrum,TRS-80,Apple II系列,Mac OS至9版以及OS-9

https://en.wikipedia.org/wiki/Newline

我很好奇,看起来像OS 9使用的是Mac,但是OS X使用\ n,正如你所期望的那样。请注意,windows使用\ r \ n工作正常,因为\ r被忽略我相信并且\ n存在。