Как мне удалить цитату из CSV? - PullRequest
1 голос
/ 07 апреля 2020

Как мне удалить цитату из csv?

Код

use Goutte\Client;

$client = new Client();

$response = $client->request('GET', 'http://c-manage.herokuapp.com/login');
$login_form = $response->filter('form')->form();
$login_form["account"] = '1';
$login_form["password"] = 'rpa1001';
$client->submit($login_form);
$client->request('GET', 'http://c-manage.herokuapp.com/client/download?searchQuery%5Bstatus%5D=1&searchQuery%5BregisterStartDate%5D=2010-01-01&searchQuery%5BregisterEndDate%5D=2020-01-01');
$csvResponse = $client->getResponse()->getContent();
return $csvResponse;

ответ: ...

ID,ステータス,分類,名前,名前(カナ),誕生日,郵便番号,住所,メールアドレス,電話番号,FAX,メモ,登録日,更新日\r\n                                                                     
213,契約中,個人,"鶴田 秀夫","ツルタ ヒデオ",2000/07/24,1508207,神奈川県吉田市北区佐々木町小林7-4-5,hiroshi.nakatsugawa@yamaguchi.net,0310-282-609,0730-327-581,,"2010-01-25 00:00:
00","2010-01-25 00:00:00"\r\n                                                                                                                                                     
221,契約中,個人,"桑原 彩羅","クワハラ サイラ",2008/04/03,8103797,青森県杉山市西区石田町浜田3-4-10,vwakamatsu@kiriyama.jp,090-5710-4350,03849-5-5746,,"2010-01-09 00:00:00","2010-0
1-09 00:00:00"\r\n                                                                                                                                                                
237,契約中,個人,"堤 悟志","ツツミ サトシ",2001/04/29,6875750,栃木県佐々木市東区中島町浜田6-6-6,xtsuda@suzuki.com,022-557-4260,0573-01-2822,,"2010-02-07 00:00:00","2010-02-07 00:0
0:00"\r\n                                                                                                                                                                         
273,契約中,個人,"富永 圭三","トミナガ ケイゾウ",2003/03/16,6314524,静岡県若松市東区廣川町青山10-9-6,yamaguchi.takuma@kondo.com,0020-062-493,06-3862-0779,,"2010-02-13 00:00:00","2
010-02-13 00:00:00"\r\n 
.
.
.

Что я хочу сделать

Я хочу удалить цитату из csv.

не

213,契約中,個人,"鶴田 秀夫","ツルタ ヒデオ",2000/07/24,1508207,

, но

213,契約中,個人,鶴田 秀夫,ツルタ ヒデオ,2000/07/24,1508207,

※ Эта личная информация является поддельной.

Что Я сделал

  1. str_replace ("" "," ", $ csvResponse);
  2. str_replace (" \ xEF \ xBB \ xBF ", '', $ csvResponse);

но не работает

1 Ответ

1 голос
/ 07 апреля 2020

Кавычки служат цели здесь, поэтому вы не должны удалять их случайно. Кавычки предотвращают разрыв столбцов, когда они должны содержать текст, который также может содержать разделитель. Например, "Foo, bar, baz". Удаление кавычек превращает этот один столбец в 3 столбца, что, очевидно, неправильно.

Хотя, если вы действительно хотите удалить их, str_replace определенно не будет путь к go потому что кавычки могут быть экранированы, чтобы быть литералами внутри столбца. Например, использование str_replace в этом столбце: "He said \"this is crazy\", and left." приведет к удалению литералов из значения столбца.

Вместо этого следует загрузить данные CSV с помощью fgetcsv() или str_getcsv() и перестроить CSV без кавычек. вот так ...

foreach (str_getcsv($csvData) as $row) {
    echo implode(",", $row), "\n";
}

Это вернет вам буквальные значения каждой строки без кавычек. Хотя любые буквенные кавычки внутри этих значений станут кавычками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...