Замена в файле всех значений через POST

Покажите пожалуйста новичу самоучке, решение. В файле 1.txt каждая строка имеет дату и значения (расписание работы) пример:

  1. 06.03.2024*Alex
  2. 07.03.2024*Petr

Я ети значения через цикл вношу в форму для редактирования

    $file=file('1.txt');
foreach($file as $line){
$line=trim($line);
$exp=explode("*",$line);
if(isset($exp[0])){
echo "<input type='name' name='id[]' value='$exp[1]'><br>";
}else{}
}

А дальше не знаю как етот массив из $_POST['id'] заменить каждый в свою строку, делал вот так.

if(isset($_POST['id'])){
$file=file('1.txt');
foreach($file as $line){
$line=trim($line);
$exp=explode("*",$line);
$post=$_POST['id'];
$replace[]=$exp[1];
$str=str_replace($replace,$post,$line);
echo $str;
}}

Но если я изменю например Alex и он найдет в другой дате то и там его заменит.


Ответы (1 шт):

Автор решения: Serg_rv

Спасибо большое 'Ипатьев' за решение.

$file = file('1.txt');
foreach($file as $line){
    $line = trim($line);
    $exp = explode("*", $line);
    if(isset($exp[1])) {
        echo '<input type="text" name="date[]" value="'.htmlspecialchars($exp[0]).'" readonly>';
        echo '<input type="text" name="id[]" value="'.htmlspecialchars($exp[1]).'"><br>'.PHP_EOL;
   }
}

if (isset($_POST['date'])) {
    $result = '';
    foreach($_POST['date'] as $i => $date) {
        $result.= $date.'*'.$_POST['id'][$i].PHP_EOL;
    }
    echo $result;
}
→ Ссылка