编写PHP页面实现一个CSV文件的上传;上传后对CSV进行解析,并以HTML的方式对CSV文件进行展示。另外,可以按照某个列的升序或者降序来生成HTML的显示页面。
时间: 2024-05-07 08:22:26 浏览: 249
利用PHP生成CSV文件简单示例
以下是一个简单的PHP页面,用于上传CSV文件并以HTML的方式展示其内容:
```php
<!DOCTYPE html>
<html>
<head>
<title>CSV文件上传</title>
</head>
<body>
<h2>CSV文件上传</h2>
<form action="" method="post" enctype="multipart/form-data">
<label for="csvfile">选择CSV文件:</label>
<input type="file" name="csvfile" id="csvfile"><br><br>
<input type="submit" value="上传">
</form>
<?php
// 如果上传了文件
if(isset($_FILES['csvfile'])) {
// 获取上传的文件信息
$file = $_FILES['csvfile'];
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
// 检查文件类型
$fileType = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
if($fileType !== 'csv') {
echo '只允许上传CSV文件';
exit;
}
// 读取CSV文件
$fileHandle = fopen($fileTmpName, 'r');
$csvData = array();
while(($data = fgetcsv($fileHandle)) !== false) {
$csvData[] = $data;
}
fclose($fileHandle);
// 排序
if(isset($_GET['sort'])) {
$sortCol = $_GET['sort'];
$sortDir = $_GET['dir'] == 'desc' ? SORT_DESC : SORT_ASC;
array_multisort(array_column($csvData, $sortCol), $sortDir, $csvData);
}
// 生成HTML表格
echo '<h2>CSV文件内容</h2>';
echo '<table border="1">';
echo '<tr>';
foreach($csvData[0] as $colName) {
echo "<th><a href=\"?sort={$colName}&dir=asc\">{$colName}↑</a> <a href=\"?sort={$colName}&dir=desc\">{$colName}↓</a></th>";
}
echo '</tr>';
for($i = 1; $i < count($csvData); $i++) {
echo '<tr>';
foreach($csvData[$i] as $cell) {
echo "<td>{$cell}</td>";
}
echo '</tr>';
}
echo '</table>';
}
?>
</body>
</html>
```
上传的CSV文件将会被解析为一个二维数组,并以HTML表格的形式展示。可以通过在表头点击列名来按照该列进行升序或降序排序。
阅读全文