Inhaltsverzeichnis
php实现CSV文件导入和导出,
Heim Backend-Entwicklung PHP-Tutorial php实现CSV文件导入和导出,_PHP教程

php实现CSV文件导入和导出,_PHP教程

Jul 12, 2016 am 09:06 AM
csv php 导入导出

php实现CSV文件导入和导出,

项目开发中,很多时候要将外部CSV文件导入到数据库中或者将数据导出为CSV文件,那么具体该如何实现呢?本文将使用PHP并结合mysql,实现了CSV格式数据的导入和导出功能。
我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名、性别、年龄等信息。

CREATE TABLE `student` ( 
 `id` int(11) NOT NULL auto_increment, 
 `name` varchar(50) NOT NULL, 
 `sex` varchar(10) NOT NULL, 
 `age` smallint(3) NOT NULL default '0', 
 PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
Nach dem Login kopieren

我们还需要一个html交互页面,放置导入表单和导出按钮。

<form id="addform" action="do.php&#63;action=import" method="post" enctype="multipart/form-data"> 
 <p>请选择要导入的CSV文件:<br/><input type="file" name="file"> <input type="submit" 
 class="btn" value="导入CSV"> 
 <input type="button" class="btn" value="导出CSV" onclick="window.location.href='do.php&#63; 
 action=export'"></p> 
</form> 
Nach dem Login kopieren

选择好本地csv文件后,点击导入,提交到do.php?action=import处理,而点击导出按钮则请求地址do.php?action=export进行数据导出处理。

1.导入CSV
do.php需要根据get过来的参数,分别处理导入和导出过程,php结构如下:

include_once ("connect.php"); //连接数据库 
$action = $_GET['action']; 
if ($action == 'import') //导入CSV 
{ 
 //导入处理 
}elseif($action=='export') //导出CSV 
{ 
 //导出处理 
} 
Nach dem Login kopieren

导入CSV处理流程:校验csv文件合法性(本文忽略)->打开读入并解析csv文件中的字段->循环获取各字段值->批量添加到数据表中->完成。

if ($action == 'import') { //导入CSV 
 $filename = $_FILES['file']['tmp_name']; 
 if(emptyempty ($filename)) 
 { 
  echo '请选择要导入的CSV文件!'; 
  exit; 
 } 
 $handle = fopen($filename, 'r'); 
 $result = input_csv($handle); //解析csv 
 $len_result = count($result); 
 if($len_result==0) 
 { 
  echo '没有任何数据!'; 
  exit; 
 } 
 for($i = 1; $i < $len_result; $i++) //循环获取各字段值 
 { 
  $name = iconv('gb2312', 'utf-8', $result[$i][0]); //中文转码 
  $sex = iconv('gb2312', 'utf-8', $result[$i][1]); 
  $age = $result[$i][2]; 
  $data_values .= "('$name','$sex','$age'),"; 
 } 
 $data_values = substr($data_values,0,-1); //去掉最后一个逗号 
 fclose($handle); //关闭指针 
 $query = mysql_query("insert into student (name,sex,age) values $data_values"); //批量插入数据表中 
 if($query) 
 { 
  echo '导入成功!'; 
 }else{ 
  echo '导入失败!'; 
 } 
} 
Nach dem Login kopieren

注意php自带的fgetcsv函数可以轻松处理csv,使用该函数可以从文件指针中读入一行并解析CSV字段。下面的函数将csv文件字段解析并以数组的形式返回。

function input_csv($handle) 
{ 
 $out = array (); 
 $n = 0; 
 while ($data = fgetcsv($handle, 10000)) 
 { 
  $num = count($data); 
  for ($i = 0; $i < $num; $i++) 
  { 
   $out[$n][$i] = $data[$i]; 
  } 
  $n++; 
 } 
 return $out; 
} 
Nach dem Login kopieren

此外在导入到数据库中时,我们采用的是批量插入而不是一条条插入的,因此在构建SQL语句时,要稍作处理,见代码。

2.导出CSV
我们知道csv文件是由逗号分割符组成的纯文本文件,你可以用excel打开,效果跟xls表个一样。
导出CSV处理流程:读取学生信息表->循环记录构建逗号分隔的字段信息->设置header信息->导出文件(下载)到本地

... 
}elseif ($action=='export') //导出CSV 
{ 
 $result = mysql_query("select * from student order by id asc"); 
 $str = "姓名,性别,年龄\n"; 
 $str = iconv('utf-8','gb2312',$str); 
 while($row=mysql_fetch_array($result)) 
 { 
  $name = iconv('utf-8','gb2312',$row['name']); //中文转码 
  $sex = iconv('utf-8','gb2312',$row['sex']); 
  $str .= $name.",".$sex.",".$row['age']."\n"; //用引文逗号分开 
 } 
 $filename = date('Ymd').'.csv'; //设置文件名 
 export_csv($filename,$str); //导出 
} 
Nach dem Login kopieren

要将数据导出到本地即下在,需要修改header信息,代码如下:

function export_csv($filename,$data) 
{ 
 header("Content-type:text/csv"); 
 header("Content-Disposition:attachment;filename=".$filename); 
 header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); 
 header('Expires:0'); 
 header('Pragma:public'); 
 echo $data; 
} 
Nach dem Login kopieren

注意导入和导出的过程中,因为我们使用的是统一UTF-8编码,遇到中文字符一定要记得转码,否则可能会出现中文乱码的情况。

以上就是本文的全部内容,希望本文所述对大家的php程序设计有所帮助。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1063893.htmlTechArticlephp实现CSV文件导入和导出, 项目开发中,很多时候要将外部CSV文件导入到数据库中或者将数据导出为CSV文件,那么具体该如何实现呢?本文...
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1677
14
PHP-Tutorial
1280
29
C#-Tutorial
1257
24
Was passiert, wenn Session_Start () mehrmals aufgerufen wird? Was passiert, wenn Session_Start () mehrmals aufgerufen wird? Apr 25, 2025 am 12:06 AM

Mehrere Anrufe bei Session_Start () führen zu Warnmeldungen und möglichen Datenüberschreibungen. 1) PHP wird eine Warnung ausstellen und veranlassen, dass die Sitzung gestartet wurde. 2) Dies kann zu unerwarteten Überschreibungen von Sitzungsdaten führen. 3) Verwenden Sie Session_Status (), um den Sitzungsstatus zu überprüfen, um wiederholte Anrufe zu vermeiden.

Komponist: Unterstützung bei der PHP -Entwicklung durch KI Komponist: Unterstützung bei der PHP -Entwicklung durch KI Apr 29, 2025 am 12:27 AM

KI kann dazu beitragen, die Verwendung von Komponisten zu optimieren. Zu den spezifischen Methoden gehören: 1. Abhängigkeitsmanagementoptimierung: AI analysiert Abhängigkeiten, empfiehlt die beste Versionskombination und reduziert Konflikte. 2. Automatisierte Codegenerierung: AI generiert Composer.json -Dateien, die den Best Practices entsprechen. 3.. Verbesserung der Codequalität: KI erkennt potenzielle Probleme, liefert Optimierungsvorschläge und verbessert die Codequalität. Diese Methoden werden durch maschinelles Lernen und Technologien für die Verarbeitung von natürlichen Sprachen implementiert, um Entwicklern zu helfen, die Effizienz und die Codequalität zu verbessern.

Welche Bedeutung hat die Funktion Session_start ()? Welche Bedeutung hat die Funktion Session_start ()? May 03, 2025 am 12:18 AM

Session_Start () iscrucialinphPFormAnagingUSSERSIONS.1) ItinitiatesanewSessionifnoneExists, 2) Wiederaufnahmen und 3) setaSessionCookieforContinuityAcrossRequests, aktivierende Anwendungen wie

So verwenden Sie MySQL -Funktionen für die Datenverarbeitung und Berechnung So verwenden Sie MySQL -Funktionen für die Datenverarbeitung und Berechnung Apr 29, 2025 pm 04:21 PM

MySQL -Funktionen können zur Datenverarbeitung und -berechnung verwendet werden. 1. Grundlegende Nutzung umfasst String -Verarbeitung, Datumsberechnung und mathematische Operationen. 2. Erweiterte Verwendung umfasst die Kombination mehrerer Funktionen zur Implementierung komplexer Vorgänge. 3. Die Leistungsoptimierung erfordert die Vermeidung der Verwendung von Funktionen in der WHERE -Klausel und der Verwendung von Gruppenby- und temporären Tabellen.

H5: Schlüsselverbesserungen bei HTML5 H5: Schlüsselverbesserungen bei HTML5 Apr 28, 2025 am 12:26 AM

HTML5 bringt fünf wichtige Verbesserungen mit sich: 1. Semantische Tags verbessern die Code -Klarheit und SEO -Effekte; 2. Multimedia Support vereinfacht Video- und Audio -Einbettung; 3. Form -Verbesserung vereinfacht die Überprüfung; 4. Offline und lokaler Speicher verbessert die Benutzererfahrung. 5. Leinwand- und Grafikfunktionen verbessern die Visualisierung von Webseiten.

Komponist: Der Paketmanager für PHP -Entwickler Komponist: Der Paketmanager für PHP -Entwickler May 02, 2025 am 12:23 AM

Composer ist ein Abhängigkeitsmanagement -Tool für PHP und verwaltet Projektabhängigkeiten über Composer.json -Datei. 1) Composer.json analysieren, um Abhängigkeitsinformationen zu erhalten; 2) Abhängigkeiten analysieren, um einen Abhängigkeitsbaum zu bilden; 3) Download und installieren Sie Abhängigkeiten vom Packagisten in das Lieferantenverzeichnis. 4) Datei Composer.lock erzeugen, um die Abhängigkeitsversion zu sperren, um die Konsistenz und die Wartbarkeit von Projekten zu gewährleisten.

Wie benutze ich Typmerkmale in C? Wie benutze ich Typmerkmale in C? Apr 28, 2025 pm 08:18 PM

Typetraiten werden in C für die Überprüfung und den Betrieb von Kompilierzeittypen verwendet, wodurch die Code-Flexibilität und die Typensicherheit verbessert werden. 1) Das Urteil wird über std :: is_integral und std :: is_floating_point durchgeführt, um eine effiziente Überprüfung und Ausgabe zu erreichen. 2) Verwenden Sie STD :: is_trivial_copyable, um die Vektorkopie zu optimieren, und wählen Sie verschiedene Kopierstrategien entsprechend dem Typ aus. 3) Achten Sie auf die Entscheidungsfindung der Kompilierzeit, die Typensicherheit, die Leistungsoptimierung und die Komplexität der Code. Die angemessene Verwendung von Typetraiten kann die Codequalität erheblich verbessern.

So konfigurieren Sie die Zeichensatz- und Kollationsregeln von MySQL So konfigurieren Sie die Zeichensatz- und Kollationsregeln von MySQL Apr 29, 2025 pm 04:06 PM

Methoden zum Konfigurieren von Zeichensätzen und Kollationen in MySQL gehören: 1. Einstellen der Zeichensätze und Kollationen auf Serverebene: setNames'utf8 '; SetCharactersetutf8; SetCollation_connection = 'utf8_general_ci'; 2. Erstellen Sie eine Datenbank, die bestimmte Zeichensätze und Kollationen verwendet: CreateDatabaseExample_Dbaractersetutf8collatutf8_General_ci; 3.. Geben Sie Zeichensätze und Kollationen an, wenn Sie eine Tabelle erstellen: createTableExample_table (IDINT

See all articles