Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Перезапись в файл
 
 автор: SnooPI   (13.04.2007 в 18:52)   письмо автору
 
 

Здравствуйте....
Мне хочеться зунать как сделать новую запись в файл так, чтобы допустим:
В файле 2 строки:

[OLD] [21.01.2207] : новость от 21 января...ляляля
[NEW] [13.04.2007] : Новая новость =)))

Мне надо чтобы записывалось в файл так чтобы 1 строчка ([OLD] [21.01.2207] : новость от 21 января...ляляля) удалилась, а на её место вставла вторая строчка , но уже с префиксом [OLD] , а то что новую запись мы хотим записать, надо чтобы она встала на 2 строчку , но с префиксом [NEW] [date] : Новость

А потом как-то вывести или как называется выход новой новости без [NEW] [date] : , а только новость...

Вообщем я знаю, что не легко, но поомгите пожалуйста

   
 
 автор: Trianon   (13.04.2007 в 19:16)   письмо автору
 
   для: SnooPI   (13.04.2007 в 18:52)
 

А потом окажется, что новости могут быть многострочные.

   
 
 автор: bronenos   (13.04.2007 в 19:28)   письмо автору
 
   для: SnooPI   (13.04.2007 в 18:52)
 

<?php
// читаем все новости
$file 'news.txt';
$news file ($file);

// делаем последнюю старой
$news[0] = preg_replace ('/^\[NEW/is''[OLD'$news[1]);

// добавляем новую
$new 'some new';
$date date ('d.m.Y');

$new strtr ($new, array("\r" => ''"\n"=>'<br/>'));
$news[1] = "[NEW] [$date] : $new\n";

// пишем обратно в файл
$fp fopen ($file'w');
fwrite ($fpimplode (''$news));
fclose ($fp);

// чтение новостей
$news file ($file);
foreach (
$news as $id=>$new)
  
$news[$id] = trim (substr ($newstrpos($new,':')+1strlen($new)));

// ну и выводим для наглядности
print '<pre>';
print_r ($news);
print 
'</pre>';
?>

   
 
 автор: SnooPI   (13.04.2007 в 19:53)   письмо автору
 
   для: bronenos   (13.04.2007 в 19:28)
 

Чуть не так :(
Вообщем представим что в файле такие строки


[OLD] [13.04.2007] : Старая новость
[NEW] [13.04.2007] : Новая новость


Так вот.....
Надо чтобы при выполнении твоего скрипта, новейшая новость(из скрипта) встала на место новой новости, а новая новость(была которая) , встала на место старой новости т.е. с приставкой [OLD] хотя была NEW....Т.е. Старая новость (которая была) вообще удалиться из файла...

   
 
 автор: bronenos   (13.04.2007 в 20:03)   письмо автору
 
   для: SnooPI   (13.04.2007 в 19:53)
 

так и должно работать

   
 
 автор: SnooPI   (13.04.2007 в 23:04)   письмо автору
 
   для: bronenos   (13.04.2007 в 20:03)
 

Оно не совсем так работает :(

   
 
 автор: bronenos   (13.04.2007 в 23:11)   письмо автору
 
   для: SnooPI   (13.04.2007 в 23:04)
 

Честно говоря я написал не проверяя...
Что там не так?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования