Нужно в строке где первый столбец == "name1" поменять yes на no. файл db.txt.
name1|1@mail.ru|name2|yes
name3|2@mail.ru|name3|yes
name4|3@mail.ru|name4|yes
$glob = "name1";
$data = file('db.txt');
foreach ($data as $row) {
$cols = explode('|', $row);
if (strcmp($glob, $cols[0]) === 0) {
$cols[3] = str_replace("yes", "no", $cols[3]);
$row = implode('|', $cols);
}
} file_put_contents('1.txt', $data); Вроде и в цикл заходиьт, но данные такие же. НЕ меняет yes на no