我得到了以下代码,该代码实际上适用于以逗号分隔的csv文件。但是由于位于德国的事实,我需要用分号分隔进口。谁能告诉我在代码中可以更改的地方?
非常感谢!
if(isset($_POST['importSubmit'])){
//validate whether uploaded file is a csv file
$csvMimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain');
if(!empty($_FILES['file']['name']) && in_array($_FILES['file']['type'],$csvMimes)){
if(is_uploaded_file($_FILES['file']['tmp_name'])){
//open uploaded csv file with read only mode
$csvFile = fopen($_FILES['file']['tmp_name'], 'r');
//skip first line
fgetcsv($csvFile);
//parse data from csv file line by line
while(($line = fgetcsv($csvFile)) !== FALSE){
$connection->query("INSERT INTO adressen (name, email, status) VALUES ('".$line[0]."','".$line[1]."','".$line[2]."')");
}
//close opened csv file
fclose($csvFile);
$qstring = '?status=succ';
}else{
$qstring = '?status=err';
}
}else{
$qstring = '?status=invalid_file';
}
}
答案 0 :(得分:1)
您可以在分隔符上放置一个定界符。 请查看php文档,它是一个有很多帮助的旧函数 http://php.net/manual/en/function.fgetcsv.php
答案 1 :(得分:0)
您可以使用带有分隔符选项的LOAD DATA LOCAL INFILE直接从本地文件系统加载到表中。
连接到MySQL时,您需要启用PDO::MYSQL_ATTR_LOCAL_INFILE。