Как перезаписать в файле TXT значение с 0 на 1?
Всем привет. Есть файл TXT, нужно переписать только одно значение между запятыми. В данном случае это $array[3] в определенной строке. Но вот заменить (т.е записать). Никак не получается. Беда с файлами, мне тут уже помогали с этим.
Пример, что нужно заменить. Находит строку и в ней значение [3].
Вот код, который находит строку и подстроку. Как что нужно добавить, что он перезаписал array[3] на единицу '1'.
$utm = 'НОМЕР СТРОКИ';
foreach ($arrayData as $value) {
$arrayUserData = explode(',', $value);
if ($arrayUserData[0] === $utm) {
$array = $arrayUserData;
}
}
echo 'Индекс: ' . $array[0] . '<br>';
echo 'Имя: ' . $array[1] . '<br>';
echo 'Имя2: ' . $array[2] . '<br>';
echo 'Состояние: ' . $array[3] . '<br>';
Ответы (1 шт):
Автор решения: teran
→ Ссылка
$needle = "qwe,"; // что ищем
$len = mb_strlen($needle); // и его длина
$lines = file("path/to/file"); // где ищем
// перебираем строки
foreach ($lines as $idx => $line) {
// если нашлось
if (mb_substr($line, 0, $len-1) == $needle ) {
$row = explode(',', $line); // разделили
$row[3] = 1; // заменилии
$lines[$idx] = implode(',', $row); // собрали, записали
break; // три-четрые, закончили
}
}
file_put_contents(implode("\n", $lines); // сохранили
как-то так видимо, плюс минус на синтаксис
