Автор оригинала: Dimexio
А как если неопределено сколько строк в файле? Я поэтому и писал, что найти строку по пользователю.
В общем: найти необходимого пользователя и изменить необходимую ячейку, ячейки могут быть все заполнены. Например:
user1|zn1|zn2|zn3|zn4|
user2|zn1|zn2|zn3|zn4|
user3|zn1|zn2|zn3|zn4|
user4|zn1|zn2|zn3|zn4|
....................... n записей
необходимо найти user3 и изменить в нём запись zn1 и zn4
как это сделать в PHP???
<?php
$fr = file('test.txt');
for($i=0;$i<count($fr);$i++)
{
$arr_file[$i] = explode('|',$fr[$i]);
}
for ($i=0;$i<count($arr_file);$i++)
{
if(trim($arr_file[$i][0])=='user3')
{
$arr_file[$i][3] = 'test3';
$fo=fopen('test.txt','w+');
foreach ($arr_file as $mass)
{
$mass = implode ('|',$mass);
fwrite($fo,$mass,1024);
}
fclose($fo);
}
}
?>
В твоем коде да, двумерный. Я имел ввиду просто строку.netmac
Нет. О том, что массив двухмерный.
$old = fopen('oldfile.csv','r');
$new = fopen('newfile.csv','w');
while ($record = fgetcsv($old, 1024, '|')) {
if ('user3' == $record[0]) {
$record[3] = 'new text'; // и т.п.
}
fwrite($new, implode('|', $record) . "\n");
}
fclose($old);
fclose($new);
rename('newfile.csv', 'oldfile.csv');
К твоему сожелению, это я знаю... хоть этоАвтор оригинала: sakon
SelenIT
Иначе ошибка вылезет.PHP:unlink('oldfile.csv');