0
    <html>
<head>
<meta charset="utf-8">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script>
<script src="jquery.tablesorter.min.js" type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(function() 
    { 
        $("#csv_table").tablesorter(); 
    } 
); 
</script>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data" name="import">
    <label for="input_import_file">Umístění CSV souboru:</label>
    <input name="import_csvfile" id="import_csvfile" type="file">
    <input name="csvsubmit" id="csvsubmit" type="submit">
</form>
<?php
if($_FILES['import_csvfile']['tmp_name']){
    echo '<table id="csv_table" width="100%" border="1" cellspacing="5" cellpadding="0">';
    $handle = fopen($_FILES['import_csvfile']['tmp_name'], "r");
    while (($data = fgetcsv($handle, 1000, ",")) !==FALSE) {
        $num = count($data);
        echo "<tr>";
    for ($c=0; $c < $num; $c++) {
        echo "<td>&nbsp;".$data[$c]."</td>"."\n";
    }
    echo "</tr>";
    }
    fclose($handle);
    echo "</table>";
}
?>
</body>
</html>

CSV ファイルから生成されたこのテーブルをセットアップするにはどうすればよいですか?

テーブルはループ (for および while 関数) を使用して生成されますが、テーブルを静的に設定する必要があるかどうか、または最初の行を設定する方法がわかりません。

私が初心者であることを助けてください。

前もって感謝します

4

1 に答える 1

1

ヘッダーがわかっている場合は、次のようにできます。

echo '<table id="csv_table" width="100%" border="1" cellspacing="5" cellpadding="0">';
echo '<tr><th>Header 1</th><th>Header 2</th><th>Header 3</th>...</tr>'
$handle = fopen($_FILES['import_csvfile']['tmp_name'], "r");

それ以外の場合、ヘッダーが CSV ファイルに含まれている場合は、カウンター変数を使用して最初の行にいるかどうかを判断できます。

$counter = 0;
while (($data = fgetcsv($handle, 1000, ",")) !==FALSE) {
    $num = count($data);
    echo "<tr>";
    for ($c=0; $c < $num; $c++) {
        if($counter == 0)
        {
            echo "<th>&nbsp;".$data[$c]."</th>"."\n";
        }else{
            echo "<td>&nbsp;".$data[$c]."</td>"."\n";
        }
    }
    echo "</tr>";
    counter++;
}

whileループをループに置き換えforても同じ利点があることに注意してください。

于 2013-06-24T19:25:06.807 に答える