如何删除csv中的引号?

押志直树(Naoki Oshiumi):

如何删除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,[email protected],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,[email protected],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,[email protected],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,[email protected],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);

但是,不工作

谢里夫:

在这里引号是有目的的,因此您不应随意删除它们。用引号防止列在需要包含也可以包含定界符的文本时中断。喜欢"Foo, bar, baz"的例子。删除引号会将这一列变成3列,这显然是错误的。

但是,如果确实要删除它们str_replace,那肯定不是走的路,因为引号可以转义为列内的文字。例如,str_replace在此列上使用"He said \"this is crazy\", and left."将从列值中删除文字。

相反,您应该使用fgetcsv()加载CSV数据,str_getcsv()并在没有引号的情况下重建CSV,如下所示...

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

这将为您返回每行的文字值,不带引号。尽管这些值内的所有文字引号都会成为引号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章