【发布时间】:2016-09-27 09:35:33
【问题描述】:
我正在寻找一个例子来将我的所有空格替换为“内联”,我认为用英语它是换行符。
这是我的 CSV 文件的示例:
"6543945";"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";"5017";"EnginSouhaite";"D";"1";"ne circule pas"
"6543945";"1111111111111111111111111111111111111111111111111100001010000101000010100001010000101000010100001010000101100010100001010000101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110001111111111111111111111111111111111111111000000000000000000000000000000000000";"5017";"EnginSouhaite";"D";"1";"Q JUSQU'AU 30/01/16 ; VE DF DU 31/01 AU 15/04/16 ; Q A PARTIR DU 17/04/16 (NE CIRCULE PAS 29,30,31/10/16)"
"6543946";"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";"5017";"EnginSouhaite";"D";"1";"ne circule pas"
"6543946";"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";"5017";"EnginSouhaite";"D";"1";"ne circule pas"
"6543945";"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";"5017";"EnginSouhaite";"D";"2";"ne circule pas"
"6543946";"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";"5017";"EnginSouhaite";"D";"2";"ne circule pas"
首先,我决定将我所有的 '/"/' 替换为空格 (' '),如下所示:
foreach( $tableau as $row ) {
$replace = preg_replace('/"/', ' ', $tableau[$i]);
echo $replace; ?> <br/> <?php
$i += 1;
}
这是结果:
6543945
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
5017
EnginSouhaite
D
1
ne circule pas 6543945
1111111111111111111111111111111111111111111111111100001010000101000010100001010000101000010100001010000101100010100001010000101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110001111111111111111111111111111111111111111000000000000000000000000000000000000
5017
EnginSouhaite
D
1
Q JUSQU'AU 30/01/16
VE DF DU 31/01 AU 15/04/16
Q A PARTIR DU 17/04/16 (NE CIRCULE PAS 29,30,31/10/16) 6543946
如您所见,我想要(而且我更喜欢)做内联。因为你可以看到像“654XXX”这样的数字在“ne circule pas”旁边,对我来说,我需要这些数字是内联的。
有人有解决办法吗?我有这样的测试:
$replace2 = preg_replace(' ', '/$\n/',$replace);
这是错误的,我认为这是一个很大的错误。
谢谢
【问题讨论】:
-
“内联”是什么意思?你能发布一个结果应该如何的例子吗?
-
您在我的帖子中看到了我的结果:例如,我的所有行都以“654xxx”之类的数字开头。如您所见,这一行:“Q A PARTIR DU 17/04/16 (NE CIRCULE PAS 29,30,31/10/16) 6543946”是 CSV 文件中的最后一行。我们可以在这一行旁边找到我的号码“654xxx”。我需要在我的行下面有我的号码,如下所示:(Q A .... NE CIRCULE PAS...)
换行符 \n,654xxx。我希望你能理解(如果不正确我会编辑) -
嗯,你目前有结构化的 CSV 数据,所以我会利用它并使用类似
str_getcsv()的东西来解析它。然后,一旦您将数据放入数组中,就可以轻松地以任何您想要的方式打印它。使用 Regex 在某些情况下可能会起作用,但在其他情况下可能会中断,因此最好直接处理 CSV。 -
谢谢,我会试试这个解决方案。
标签: php regex csv preg-replace str-replace