簡體   English   中英

如何使用php刪除CSV文件中的多余逗號

[英]How can I remove extra commas in a CSV file with php

我正在編寫一個PHP腳本以將CSV文件導入MySQL表。

我的問題是字段之間用逗號分隔,但是有些字段用逗號或雙引號引起來(我已經找到了雙引號的解決方案),但是沒有逗號。 這是一個例子:

SORT_COLUMN,SORT_ALPHA,GUEST_NAME,PROFILE_ID,FULL_ADDRESS,IS_TOTAL_YN
0,DIAZ REBOLLO ANGELICA,Diaz Rebollo Angelica,824990,"Blvd. Manuel Avila Camacho 36, piso 10   Lomas de Chapul DF 11000"

如您在“完整地址”字段中所見:

"Blvd. Manuel Avila Camacho 36, piso 10   Lomas de Chapul DF 11000"

帶有"和36之前的逗號,

這是PHP CODE的一部分:

$lineseparator = "\n";
foreach(explode($lineseparator,$csvcontent) as $line) {
$lines++;
$line = trim($line," \t");
$line = str_replace("\r","",$line);

    // Here I remove double quotes in the csv file
    $line =  str_replace(""",'',$line);
    $linearray = explode($fieldseparator,$line);
    $linemysql = implode("','",$linearray);
    $query = "insert into $databasetable values('$linemysql');";
    $queries .= $query . "\n";
    @mysql_query($query);
}

fgetcsv(是標准PHP庫的一部分)是您的朋友。

好吧,大多數時候。 當然,請注意$escape參數,該參數很奇怪,沒有用並且是損壞的。 您需要傳遞0 (注意:立即數為零,而不是PHP中的其他零位)以禁用它。

通常,我使用csv來工作; 作為字段分隔符,而\\n作為行分隔符。

你會經常見面,在領域,這就是為什么; 更好地分離。

編輯:

由於您的地址字段包含在" ,因此您可以使用以下內容:

$line = '0,DIAZ REBOLLO ANGELICA,Diaz Rebollo Angelica,824990,"Blvd. Manuel Avila Camacho 36, piso 10   Lomas de Chapul DF 11000"';

preg_match('/".*"/', $line, $matches);
$address = $matches[0];

$data = explode(',', $line);

$data[4] = $address;

var_dump($data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM