簡體   English   中英

PHP如果包含特定的標題信息,則跳過CSV的第一行

[英]PHP Skip First Line Of CSV If It Contains Specific Header Info

我需要檢查csv文件的第一行,以查看它是否包含列的標題(數字,名稱,金額)。 如果第一行包含這些標題,則退出文件或添加編號,名稱,金額(如果第一行不包含此信息)。

我試圖檢查第一列第一行是否包含一個數字,這意味着沒有標題。

這是我正在使用的代碼。 再次感謝您的所有幫助。

$rows = $phones = [];
if (($handle = fopen($file_tmp, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    list($phone, $name, $amount) = $data;
    if(!($data = fgetcsv($handle))) {
return;    //most likely empty file
}
    if(!is_numeric($data[0])) {
        fputcsv($handle, array('number', 'name', 'amount'));
    }

    $phone = str_replace(['(',')','-'], '', $phone);
    $amount = str_replace(['$'], "", $amount);
    $amount = sprintf('$%.2f', $amount);


     // track unique phone numbers here
    if (isset($phones[$phone])) {
        // it's a duplicate so just ignore the entire row
        continue;
    }
    // otherwise it's a new phone number so store it
    $phones[$phone] = true;
    $rows[] = [$phone, $name, $amount];
    // or output directly
    //echo "$phone | $name | $amount";
    }
    fclose($handle);
}    

您有兩種選擇:

  1. 固定的規則在您的加載程序/導出程序中使用或不使用標題進行CSV導出。
  2. 固定列順序; 知道amount字段的格式,您可以檢查任何行的值是否有效

要將“ $ 100.00”解析為PHP中的數字:

NumberFormatter類:: parseCurrency

暫無
暫無

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

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