栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在php中上传和解析CSV文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在php中上传和解析CSV文件

尽管您可以轻松找到如何使用php处理文件上传的教程,并且有一些功能(手动)可以处理CSV,但是我将发布一些代码,因为几天前我从事一个项目,其中包括一些代码,您可以采用…

HTML:

<table width="600"><form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data"><tr><td width="20%">Select file</td><td width="80%"><input type="file" name="file" id="file" /></td></tr><tr><td>Submit</td><td><input type="submit" name="submit" /></td></tr></form></table>

PHP:

if ( isset($_POST["submit"]) ) {   if ( isset($_FILES["file"])) { //if there was an error uploading the file        if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />";        }        else {      //Print file details  echo "Upload: " . $_FILES["file"]["name"] . "<br />";  echo "Type: " . $_FILES["file"]["type"] . "<br />";  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";  echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";      //if file already exists  if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. ";  }  else {         //Store file in directory "upload" with the name of "uploaded_file.txt" $storagename = "uploaded_file.txt"; move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $storagename); echo "Stored in: " . "upload/" . $_FILES["file"]["name"] . "<br />"; }        }     } else {  echo "No file selected <br />";     }}

我知道必须有一种更简单的方法来执行此操作,但是我读取了CSV文件并将每个记录的单个单元格存储在二维数组中。

if ( isset($storagename) && $file = fopen( "upload/" . $storagename , r ) ) {    echo "File opened.<br />";    $firstline = fgets ($file, 4096 );        //Gets the number of fields, in CSV-files the names of the fields are mostly given in the first line    $num = strlen($firstline) - strlen(str_replace(";", "", $firstline));        //save the different fields of the firstline in an array called fields    $fields = array();    $fields = explode( ";", $firstline, ($num+1) );    $line = array();    $i = 0;        //CSV: one line is one record and the cells/fields are seperated by ";"        //so $dsatz is an two dimensional array saving the records like this: $dsatz[number of record][number of cell]    while ( $line[$i] = fgets ($file, 4096) ) {        $dsatz[$i] = array();        $dsatz[$i] = explode( ";", $line[$i], ($num+1) );        $i++;    }        echo "<table>";        echo "<tr>";    for ( $k = 0; $k != ($num+1); $k++ ) {        echo "<td>" . $fields[$k] . "</td>";    }        echo "</tr>";    foreach ($dsatz as $key => $number) {     //new table row for every record        echo "<tr>";        foreach ($number as $k => $content) {  //new table cell for every field of the record echo "<td>" . $content . "</td>";        }    }    echo "</table>";}

因此,我希望这会有所帮助,这只是一小段代码,并且我尚未对其进行测试,因为我使用的代码略有不同。评论应解释一切。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412031.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号