Использование расстояния между вкладками в php для текстового файла

0

Я читаю CSV файл и печатаю данные из CSV файла в 2 .txt файла. Вывод текстовых файлов следующий:

John
Georgina,Sinclair,408999703657,cheque,"First National Bank",Fourways,275.00,12/01/2012
Toby,Henderson,401255489873,cheque,"First National Bank",Edenvale,181.03,12/13/2012

Вот мой код:

    $file_handle = fopen("debitorders.csv", "r") or die("can't open debitorders.csv");
    $absaFile = fopen("ABSA.txt", "w") or die("can't open ABSA.txt");
    $firstNationalBankFile = fopen("First National Bank.txt", "w") or die("can't open First       National Bank.txt");  

    while (!feof($file_handle) ) {

        $debitorders = fgetcsv($file_handle, 1024, ",");

        if ($debitorders[4] == "ABSA"){
            print_r ($debitorders[4] . "<br />");
            fputcsv($absaFile, $debitorders);

            $ABSA_bank = "ABSA";
            fopen("ABSA.txt", "a");
            file_put_contents('ABSA.txt', $ABSA_bank, FILE_APPEND);
        }

        if ($debitorders[4] == "First National Bank"){
            $FNB_bank = "First National Bank";

            print_r ($debitorders[4] . "<br />");
            fputcsv($firstNationalBankFile, $debitorders);

            $FNB_bank = "First National Bank";
            fopen("First National Bank.txt", "a");
            file_put_contents('First National Bank.txt', $FNB_bank, FILE_APPEND);
        }
    }
    fclose($file_handle);
    fclose($absaFile);
    fclose($firstNationalBankFile);

Как я могу помещать области табуляции в выходной файл вместо запятых, чтобы результат выглядел следующим образом:

John
GeorginaSinclair    408999703657  cheque  First National Bank  Fourways 275.0012/01/2012
TobyHenderson       401255489873  cheque  First National Bank  Edenvale 181.0312/13/2012

Любая помощь будет оценена по достоинству. Спасибо

  • 2
    Вы можете сделать это с \t в конце вашей строки.
  • 0
    см. stackoverflow.com/questions/11055153/…
Показать ещё 1 комментарий
Теги:
csv
text-files

2 ответа

0

В соответствии с руководством по php

int fputcsv ( resource $handle , array $fields [, string $delimiter = "," [, string $enclosure = '"' ]] )

Таким образом, вы можете попробовать

 fputcsv($absaFile, $debitorders ,"\t");
0

Я сделал что-то подобное некоторое время назад, хотя это было наоборот. Я заменил вкладки запятыми. Вот код, который я использовал:

preg_replace('/[ ]{2,}|[\t]/', ',', $string);

В приведенном выше коде удалены две вкладки и заменены на одну запятую. Так что, возможно, попробуй так:

preg_replace(',', '/[ ]{1,}|[\t]/', $string);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню