помогите со скриптом редактирования новостей

himera

Новичок
помогите со скриптом редактирования новостей

Есть некий скрипт который пишет новости в текстовый файл в таком виде:

дата|<br>новость
дата|<br>новость
дата|<br>новость
дата|<br>новость
.............................
.............................
дата|<br>новость

С появлением потребности модерить новости я с горем попалам полапатив похожие скрипты :) навоял вот что:
PHP:
<?
  $n = "0";
  $g = "0";
          $fill="http://test2.ru/novosti/news.txt";
          $test = file("$fill");
      $size = sizeof($test);
$num = $size;
                        do {
                                  $data = explode("|", $test[$num]);
                                  $data[1] = stripslashes($data[1]);
if ($data[0] != "") {
print "<img src=str.gif><b><i>$data[0]</i></b> ::<form method=POST action=--WEBBOT-SELF-->
<p><textarea rows=4 name=S1 cols=51>$data[1]</textarea><input type=submit value=&#209;&#238;&#245;&#240;&#224;&#237;&#232;&#242;&#252; name=B1></p>
</form> ";

$data[3] = str_replace("\r\n", "", $data[3]);
print "<br>";
}

$g++;
$num--;
$n++;

                     } while ($n-1 < "$size");
?>
Все отлично. Каждая новость появляется в поле для редактирования, а вот со скриптом который обработает мои изменения и запишет в исходный файл с новостями не получается :( :confused:
 

himera

Новичок
Re: Re: помогите со скриптом редактирования новостей

Автор оригинала: Shark
Может проблема тут?
Да не не тут :)
Вместо етого была ссылка на /news.php?deystvie=editnews

а вот оно само:
PHP:
$text = htmlspecialchars($text);
$text = str_replace("\r\n", "<br>", $text);
{ $tteexxtt = "|$text"; }
$fp=fopen("/home/novosti/news.txt","a");
fputs($fp,"$tteexxtt\r\n");
fclose($fp);
$text - отредактированный текст из формы
Эфект: запись новой строчке в формате
|отредактированый текст
 

lucika

Новичок
все правильно у тебя так и написано, дату кто будет в скрипт обработки передовать, если не хочешь давать ее редактировать, сделай ее hidden.
 

himera

Новичок
Дык а как сделать что бы отредактированная запись записывалась не новой строкой в файле, а перезаписывала старую? Вот в чем вопрос!
 
himera:
ты создаешь массив с помощью file

отредактировал массив, и этот же массив пишешь обратно в файл
 

himera

Новичок
nofx :
А не мог бы простенький пример для наглядности привести
 

Фанат

oncle terrible
Команда форума
himera
для этого надо переписать весь файл.
по-другому невозможно
 
простенький пример? тоесть как массив в файл записать?
 
PHP:
<?php

$news = file("news.txt");

// редактируем $news

$all = implode("\n", $news);

// пишем в файл файл

?>
[m]implode[/m]
 

lucika

Новичок
только сразу подумай как ты будешь решать проблему если у тебя две новости одной датой
 

himera

Новичок
новая проблема
файл news.txt

123|abc

Скрипт
PHP:
<?php
$news = file("news.txt");
##########################################

$data = implode("|", $news);

print "$data[1]";
##########################################
?>
Результатом выполнения скрипта является вывод числа 2
А как задать размер $data[1] ????? Что бы он был от разделителя до разделителя а не конкреный сивмол?
 

Фанат

oncle terrible
Команда форума
himera
тебе очень желательно хотя бы немного понимать, что ты делаешь.
В частности, не мог бы ты пояснить смысл таинственного действия $data = implode("|", $news); ?
 

himera

Новичок
Автор оригинала: Фанат
himera
тебе очень желательно хотя бы немного понимать, что ты делаешь.
В частности, не мог бы ты пояснить смысл таинственного действия $data = implode("|", $news); ?
Знаешь, одной из причин по которой люди задают вопросы на форумах (не считая флуда) является попытка как раз понять что либо. И вместо того что бы флудить и умничать лучше бы ответил по существу (например указав на ошибку)

Я пытаюсь таким образом разложить строку на отдельные составляющие дата0 дата1 дата2 и тд....
 

Фанат

oncle terrible
Команда форума
пытаюсь таким образом разложить строку
так тебе же эту функцию привели, как пример ОБРАТНОЙ - которая СКЛАДЫВАЕТ массив в строку.
Знаешь, одной из причин по которой люди задают вопросы на форумах (не считая флуда) является попытка как раз понять что либо. И вместо того что бы флудить и умничать лучше бы ответил по существу (например указав на ошибку)
Милый, а с чего ты взял, что из твоего огрызка кода и невнятного бормотания всем сразу ясно, что ты собрался делать?
у тебя был вопрос, между прочим, не про implode.
а про $data.
И вот для того, чтобы на ТВОЙ вопрос,
ТВОЕЙ светлости ответить ,и задаётся уточняющий вопрос.
На который надо быстро и четко ответить. Без беллетристики и обиженных соплей.

-~{}~ 02.03.05 14:04:

Я пытаюсь таким образом разложить строку
$news у тебя не строка.
 

himera

Новичок
То есть сначало надаразложить файл на строки?
news.txt
++++++++++++
123|abc:
345|cde:
++++++++++++


PHP:
<?php
 $news = file("news.txt");
 $line = explode(":", $news);
 $data = explode("|", $line);
 print "$data[0]";
?>
 

Фанат

oncle terrible
Команда форума
откуда взялся символ":"?
Там, выше по коду, был другой символ? или это мне мерещится?

-~{}~ 02.03.05 14:15:

То есть сначало надаразложить файл на строки?
опять вопрос.
ты что-то делаешь, но опять не понимаешь - зачем.
что у тебя делает вот этот код
?
 

himera

Новичок
Присваивает переменной $news значение содержимого файла news.txt
 
Сверху