如何修复某些行中间带换行符的文本文件?

时间:2017-08-04 06:56:14

标签: php csv text

我有一个文本文件,问题是有些行分为两行。例如:

Line 1 : value[1] , value[2] , value[3] , value[4] , value[5] 

Line 2 : value[1] , value[2] , 
Line 3 : value[3 *] , value[4 *] , value[5 *] 

Line 4 : value[1] , value[2] , value[3] , value[4] , value[5] 
Line 5 : value[1] , value[2] , value[3] , value[4] , value[5]

现在,我如何安排这些行,因为我需要通过PHP将数据插入我的数据库:

Line 1 : value[1] , value[2] , value[3] , value[4] , value[5] 

Line 2 : value[1] , value[2] , value[3] , value[4] , value[5] 


Line 3 : value[1] , value[2] , value[3] , value[4] , value[5] 
Line 4 : value[1] , value[2] , value[3] , value[4] , value[5]

1 个答案:

答案 0 :(得分:1)

我将字符串分解为数组并循环遍历数组。如果没有4个逗号,它将组合两行并取消设置" previous"。

$str = "value1 , value2 , value3 , value4 , value5
value1 , value2 ,
value3 , value4 , value5
value1 , value2 , value3 , value4 , value5
value1 , value2 , value3 , value4 , value5";

$arr= explode(PHP_EOL, $str);

for($i=0; $i<count($arr); $i++){
    if(substr_count($arr[$i], ",") != 4){
       $arr[$i+1] = $arr[$i] . " " . $arr[$i+1];
       unset($arr[$i]);
    }
}
echo implode(PHP_EOL, $arr);

https://3v4l.org/EBQEX