file — запись в строку, с которой мы читаем (PHP)

Допустим, у нас есть файл, открытый с помощью fopen. Можно ли написать в ту же строку, с которой мы читаем?

В основном я работаю с CSV-файлами, и мне нужно записать значения в строки, которые не имеют второго или первого значения. (Example1; example2)

Благодарю.

0

Решение

Пример CSV:

Sally Whittaker,2018,McCarren House,312,3.75
Cushing House,148,3.52
Prescott House,17-D,3.20
Sandy Allen,2019,Oliver House,108,3.48

Вторая и третья строка — первые два элемента отсутствуют.
Код:

$file=file("csv.csv");

$str='';
foreach ($file as $line) {


$liner=explode(',',$line);//use your own separator
if(count($liner)<5) {

array_unshift($liner, 'item1','item2');//put items at the start
$str.= implode(',', $liner);

}
else {
$str.=implode(',', $liner);
}
}

file_put_contents('csv.csv', $str);

Выходной CSV:

Sally Whittaker,2018,McCarren House,312,3.75
item1,item2,Cushing House,148,3.52
item1,item2,Prescott House,17-D,3.20
Sandy Allen,2019,Oliver House,108,3.48

РЕДАКТИРОВАТЬ:
если CSV (вероятно), имеют эту структуру:

Sally Whittaker,2018,McCarren House,312,3.75
,ddd,Cushing House,148,3.52
,xxxx,Prescott House,17-D,3.20
Sandy Allen,2019,Oliver House,108,3.48

код может быть:

$file=file("csv.csv");

$str='';
foreach ($file as $line) {


$liner=explode(',',$line);
if($liner[0]=='') { //check if first item is empty!
$liner[0]='item';

}
$str.=implode(',', $liner);
}

file_put_contents('csv.csv', $str);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]