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

vovus

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

Добрый день... скачал скрипт новостей с сайта http://omsk-777.ru/all.php?act=novosti
Скриптик прикольный, но возникла одна проблемка - я в пхп почти и ничего не понимаю....
Можно ли в разделе администратора при добавлении новой новости или старую новость переместить не только в самое начало, но и в конец или (самое главное) в середину всего списка новостей. Я просто не понимаю, как мне порезать в текстовом файле строчки, потом раздвинуть или переместить их и вставить новую строчку... простым методом она только в конец файла влепливается. Буду благодарен за помощь.... :confused:

ПРИМЕР: есть текст в news.txt

1::55::ууууууу::ццццц::ыыыыыыы
2::77::чччччч::фыыыы::фыфыффы
1::55::ууууууу::ццццц::ыыыыыыы
2::77::чччччч::фыыыы::фыфыффы
1::55::ууууууу::ццццц::ыыыыыыы
2::77::чччччч::фыыыы::фыфыффы

и мне надо вставить свежую строчку:
33::99::свежая или::старая новость

так:

33::99::свежая или::старая новость
1::55::ууууууу::ццццц::ыыыыыыы
2::77::чччччч::фыыыы::фыфыффы
1::55::ууууууу::ццццц::ыыыыыыы
2::77::чччччч::фыыыы::фыфыффы
1::55::ууууууу::ццццц::ыыыыыыы
2::77::чччччч::фыыыы::фыфыффы

или так:

1::55::ууууууу::ццццц::ыыыыыыы
2::77::чччччч::фыыыы::фыфыффы
1::55::ууууууу::ццццц::ыыыыыыы
33::99::свежая или::старая новость
2::77::чччччч::фыыыы::фыфыффы
1::55::ууууууу::ццццц::ыыыыыыы
2::77::чччччч::фыыыы::фыфыффы

проще говоря как гонять любую строку с помощью странички администрирования вверх-вниз по всему текстовому файлу...?

(на страничке админа выводятся весь список новостей, каждая в отдельной форме...) и к примеру выбрав нужный номер строчки , эта новость стала бы вместо неё, а старая сместилась на одну строчку ниже....
 

vladax

Новичок
vovus
Давай по порядку.. Определись, что для тебя является "серединой всего списка новостей"?
 

sakon

П..и.н..ок
В конец просто. В fopen() указать параметр r+. В середину - через временный файл.
 

vovus

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

sakon

П..и.н..ок
А зачем тебе эта заморочка с перемещением новостей?
 

vovus

Новичок
sakon , да делаю сайт для "странной аудирории"... долго объяснять.... тама новости частенько перечитывают с самого начала и до конца.... и иногда узнаются факты уже прошедшего времени... и как мне эту уже устаревшую новость вставить в середину, не затерев другую?

ПРИМЕР:

01.10.2002 - у Васи пупкина день варения
09.11.2002 - у Васи пупкина умер кот
30.10.2002 - у Васи пупкина появилась жена
15.11.2003 - у Васи пупкина отвалился.....


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

SelenIT

IT-лунатик :)
как гонять любую строку с помощью странички администрирования вверх-вниз по всему текстовому файлу...?
Только переписывая файл целиком. Например, считав все строки в массив ([m]file[/m]), узнать номер нужной строчки ([m]array_search[/m] или, в крайнем случае, перебор циклом), вставить новый элемент в нужное место ([m]array_splice[/m]) и в цикле записать массив обратно в файл (каждый элемент - в новую строчку).

Имхо, можно поступить проще - хранить где-нибудь (в другом файле, например) пары "номер строки в файле - порядковый номер этой строки при выводе" и в админке редактировать только эти пары. Причем таких файлов (а значит, и разных порядков вывода) может быть несколько. Правда, для реализации этого файл самих новостей все равно придется считывать в массив целиком (ради возможности произвольного доступа к элементам).
 

sakon

П..и.н..ок
Можно и так -
Считать, во временный файл, из файла строки до строки кда надо вставить новую запись, считать новую запмсь во временный файл, считать отальные строки из временного файла, перезаписать основной файл...
 

vladax

Новичок
господи, задачка то проще париной репы..
1. читаем строки новостей в массив
2. считывать в перменную то, что идет до вставляемой строки строки
3. добавить в переменную новую строку
4. добавить то, что осталось (после вставляемой строки)
5. перезаписать файл
 

vovus

Новичок
Ребятки, спасибо , что пытаетесь разъяснить....! Я и сам это методом научного тыка сегодня понял, но я не могу это слепить в пхп скрипт (я выше писал, что в пхп ноль, ну может почти ноль...) Вы мне дали ссылки на (file), (array_splice) и т.д. я посмотрел, сделал тупое выражение лица и обратно вернулся в форум снова вас доставать глупыми вопросами...

Тут ещё одна проблемка.... скрипт новостей уже давно готовый и тем самым мне труднее сообразить , как его переделать, а новый скрипт с нуля я и тем более не потяну склеить.... Вот такая скромная проблемка....
 

SelenIT

IT-лунатик :)
vladax
а зачем собирать из массива переменную, если можно записывать строки в файл прямо из массива? Или я чего-то недопонял?

vovus
а новый скрипт с нуля я и тем более не потяну склеить
Не бойся пробовать. Скрипт буквально на пять строчек, какой вариант из предложенных ты ни выберешь. Судя по моему личному опыту, как правило, написать свое проще, чем пытаться вникнуть в чужую логику - особенно, если в ней изначально не предусмотрено нужной функциональности.
 

vovus

Новичок
..Я тута в картинке наваял , чё именно меня интересует... кажись понятнее не объясню... ;) в выбрасываемом меню список ID новостей (они видны в правом верхнем углу каждой новости)

http://bobdv.111mb.com/news.jpg

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

sakon

П..и.н..ок
vovus
Я так понимаю, что тебе просто не хочется чуть-чуть подумать. Тебе подсказали конкретно КАК сделать именно то, о чем ты спрашиваешь.
 

neko

tеam neko
надо развивать способности
для начала кубики купить с цифереками
потом палочки
 

SelenIT

IT-лунатик :)
Так судя по картинке, эта функция и так уже есть при каждой новости... Не работают, что ли? Или для других новостей не появляется полного списка?
 

vovus

Новичок
SelenIT , это я только что влепил с помощью Homesite туда SELECT.... :) но он ничего не делает - просто для примера показал..... а по поводу кубиков..... я для ентого на форум и заполз....
 

sakon

П..и.н..ок
Ну раз сумел селект вставить, значит и с остальным проблем не будет. Делай - будут проблемы - спрашивай, а за тебя никто делать не будет.
 
Сверху