Перенос строки свежей новости в любое место текстового файла

vovus

Новичок
Да я и не прошу , чтобы меня лодырем делали...сам хочу научиться..... но у меня чёт такое предчувствие, что тута не всё так просто, как говорите и именно из-за того, что скрипт уже каем-то слеплен, а переделка и добавление мне обойдётся кровью и потом ... ладненько - начну потихоньку повырять новостной скриптик... НО ТЕМА ЕЩЁ НЕ ЗАКРЫТА!!!!! :)

Если есть где-то в инете примеры веше описанного - киньте ссылочку... а то я как ни формулировал запрос в поисковиках, ничего толкового и не надыбал...
 

vovus

Новичок
// ПЫТАЕМСЯ ЧТО-ТО ЗАМУТИТЬ

if ( $pod == "OK"){

$st=$mon; //номер строчки, над которой будет новая
if ($nomer == "" ){$nomer = $mon;}
$line=$st; # строка, которую нужно изменить
$replace="$nomer::$tema::$data::$message::$fn::$size[0]::$size[1]::$fn2::$siz1::$siz2"; # на что нужно изменить

$file=file("basenews.dat");
$open=fopen("basenews.dat","w");

for($i=0;$i<count($file);$i++)
{
if(($i+1)!=$line){fwrite($open,$file[$i]);}
else{fwrite($open,$replace."\r\n");}
}

fclose($open);
}


есть такой код - как я и хотел: подсовывает нужную новую новость под ту, которую выбрал в форме...
НО... не подскажите, почему скрипт удаляет самую первую (верхнюю) строку из файла с новостью...? Я бы ещё понял, если бы он не подсовывал поверх старой строчки новую, а просто заменял её... как раз этот код раньше именно это и делал... Подскажите , пожалуйста, не соображающему, но только не как пойти на ......, а что ж в этом оч. сыром коде я не так намутил?
 

SelenIT

IT-лунатик :)
1) if (($i+1)!=$line) - нужные ли числа тут сравниваются?
2) в случае совпадения нужно записать в файл 2 строки - и старую, и добавленную.
 

vovus

Новичок
нужные ли числа тут сравниваются?

$line - это номер строки, которая должна удалиться, а вместо неё становится старая+новая...
а выходит белеберда - стирается только первая....

в случае совпадения нужно записать в файл 2 строки - и старую, и добавленную.

если бы я знал.. - максимум, на что меня хватает, так это на лёгкую переделку чьих-либо скриптов... :(

я даже не могу понять, почему этот кусок кода не затирает старую строку (хотя мне сие и подходит)

мусолит только малюсенькая проблемка с первой строчкой ...
 
Сверху