Есть один вопрос. Я написал скрипт который должен удалять из файла определенный блок. Сам код скрипта ниже. Вроде бы все правильно, но удаляет иногда не то что нужно, а иногда вообще на половину.
Скрипт test.php:
<?
# Читаем файл
$file = file('test.txt');
# Юзер у которого нужно удалить блок
$search='user2';
# Начинаем считывать каждую строку
for($i=0;$i<sizeof($file);$i++)
{
# Если в строке найден указанный юзер
if (preg_match('/'.$search.'/i', $file[$i]))
{
echo "Удален юзер ".$search." в строке №$i";
# Присваиваем переменной $n позицию строки <User "$search">
$n=$i;
# Если не найден
}else{
# Если позиция строки не является концом блока, то удаляем строку.
if($file[$n]!='</User>')
{
$n++;
unset($file[$n-1]);
$fp=fopen("test.txt","w");
fputs($fp,implode("",$file));
fclose($fp);
}
}
}
?>
Сам файл test.txt: