我有逗号分隔的数据,每七个数据条目重复一次(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";
}
答案 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;
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