[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Заменить строку в файле и сохранить его
Radzhab
Есть файл 1.txt.

name1|name2|yes
name3|name4|yes
name4|name5|yes


В переменную $glob я занес "name4". Я прохожу в цикле по строкам файла. Нахожу строку в которой есть вхождение строки "name4". Как поменять аттрибут "yes" на "no" и сохранить его

 $file = fopen('1.txt', 'r+');
if($file)
{
while(!feof($file))
{
$i = fgets($file, 1024);
$i = explode("|",$i);
if ( strcmp ( $glob, $i[0]) == 0 ){
$string = str_replace("yes","no",$i[3]);
//
}
}
}

fclose($file);

Вот что я хочу получить на выходе

   name1|name2|yes
name3|name4|no
name4|name5|yes
FatCat
Цитата (Radzhab @ 15.06.2014 - 10:09)
$i[3]

С индексом "3" четвертый элемент массива. А у тебя всего 3.
И нет необходимости использовать str_replace, просто замени элемент массива.
То есть, вместо
Цитата (Radzhab @ 15.06.2014 - 10:09)
if ( strcmp ( $glob, $i[0]) == 0  ){
                   $string = str_replace("yes","no",$i[3]);
                //
                }
нужно
if($i[0] == $glob)$i[2] = "no";

А затем собрать строку:
$i = implode("|", $i);


_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.