用php中的换行符替换每七个逗号

时间:2015-07-02 16:14:31

标签: php

我有逗号分隔的数据,每七个数据条目重复一次(a,b,c,d,e,f,g,a,b,c,d,e,f,g,a,b,c,d ,e,f,g,a,b,c,d,e,f,g,a,b,c,d,e,f,g)我想用换行符替换每第七个逗号,以获得如图所示的数据下方。

1. a,b,c,d,e,f,g
2. a,b,c,d,e,f,g
3. a,b,c,d,e,f,g
4. a,b,c,d,e,f,g
5. a,b,c,d,e,f,g

我已经尝试了,但我是php的新手。这就是我所做的:

$data = file_get_contents("Fundo.txt");

$total = explode(",", $data);
for ($i = 0; $i < count($total); $i++)
{
    $temp = explode(',', $total[$i]);
    $Id = $temp[0];

    echo $Id . "\n"; 
}

2 个答案:

答案 0 :(得分:3)

$data = file_get_contents("Fundo.txt");
echo preg_replace('!([a-g,]{13}),?!', "$1\n", $data);

[a-g] - 字符串中的符号,您可以用\ w或。替换。

{13} - 意味着13个字符

,? - 删除,

输出

a,b,c,d,e,f,g
a,b,c,d,e,f,g
a,b,c,d,e,f,g
a,b,c,d,e,f,g
a,b,c,d,e,f,g

答案 1 :(得分:3)

这是另一种方法,如果您的数据包含单词而不仅仅是字母,则可以使用此方法。

<?php

$data = 'a,b,c,d,e,f,g,a,b,c,d,e,f,g,a,b,c,d,e,f,hello,world,universe,c,d,e,f,g,a,b,c,d,e,f,g';

$exploded = explode(',', $data);
$final = '';

for ($i = 0; $i < count($exploded); $i += 7)
    $final .= implode(',', array_slice($exploded, $i, 7)) . "\n";

echo $final;

Output

a,b,c,d,e,f,g
a,b,c,d,e,f,g
a,b,c,d,e,f,hello
world,universe,c,d,e,f,g
a,b,c,d,e,f,g