Проблема с переводом строки

kesha

Новичок
Проблема с переводом строки

код для записи:
PHP:
<?php
$file ="news_db/news.txt";
setlocale(LC_ALL, '');
$date = strftime("%d %B %Y %H:%M %a ");

function add(){
        global $file;
        global $date;




        $theme = $_REQUEST['theme'];
        $author = $_REQUEST['author'];
        $message = $_REQUEST['message'];

        $theme = str_replace("|", "&brvbar;", $theme);
        $author = str_replace("|", "&brvbar;", $author);
        $message = str_replace("|", "&brvbar;", $message);
        $message = trim($message);
        $message = ereg_replace ("
        ", "<br>", $message);

        $rec_array = file($file);

        fclose(fopen($file, "a+b"));
        $f = fopen($file, "a+t");
        flock($f, LOCK_EX);
        fwrite($f, "$date|$theme|$message|$author|\n");
        fclose($f);
}
if (!isset($_REQUEST['doSave'])) {
?>

<table border=0 height="" width=180 cellspacing="0" cellpadding="0" bgcolor="black" align="center">

<tr>
<td width=20 height=20><p><img border="0" src="web_img/g1.jpg" width="20" height="20"></td>
<td width= height=20 background="web_img/pol_gor_v.jpg"></td>
<td width=20 height=20><p><img border="0" src="web_img/g2.jpg" width="20" height="20"></td>
</tr>

<tr>
<td width=20 background="web_img/pol_ver_l.jpg"></td>
<td width= height= bgcolor=#000000 valign="top">
<form action="<?=$_REQUEST['SCRIPT_NAME']?>" method="post">
<table border=0><tr><td>
<font color="white">Тема:</font></td>
<td><input type=text name="theme" value=""></td></tr>
<tr><td>
<font color="white">Автор:</font></td>
<td><input type=text name="author" value=""></td></tr>
<tr><td><font color="white">Новость:</font></td>
<td><textarea name="message" value=""></textarea></td></tr>
<tr><td colspan=2><input type=submit name="doSave" value="Добавить новость">
</td></tr>
</table>

</form>

</td>
<td width=20 background="web_img/pol_ver_r.jpg"></td>

<tr>
<td width=20 height=20><p><img border="0" src="web_img/g3.jpg" width="20" height="20"></td>
<td width= height=20 background="web_img/pol_gor_n.jpg"></td>
<td width=20 height=20><p><img border="0" src="web_img/g4.jpg" width="20" height="20"></td>
</tr>
</table>

</body>

</html>
<? } else {
        add();
        print "Новость успешно добавлена!";
        }
?>
код для вывода записи:
PHP:
<?php
function view() {
        $file = "news/news_db/news.txt";
        $mess_arr = file($file);
    $mess_arr = array_reverse($mess_arr);

        for ($i=0; $i<count($mess_arr); $i++) {
                $msg = explode("|", $mess_arr[$i]);
                print "<table border=0 height=\"\" width=\"400\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"black\" align=\"center\">
                <tr>
                <td width= height=><p><img border=\"0\" src=\"web_img/g1.jpg\" width=\"20\" height=\"20\">
                </td>
                <td width=20 height=20 background=\"web_img/pol_gor_v.jpg\">
                </td><td width=20 height=20><img border=\"0\" src=\"web_img/g2.jpg\" width=\"20\" height=\"20\">
                </td>
                </tr>
                <tr>
                <td width=20 background=\"web_img/pol_ver_l.jpg\"></td>";
                print"<td><table border=0 width=\"100%\" height\"100%\"><tr>
                      <td><font color=\"white\">$msg[0]</font></td></tr>";
                print"<tr><td><font color=\"yellow\"><b>$msg[1]</b></font></td></tr>";
                print"<tr><td><font color=\"white\">$msg[2]</font></td></tr>";
                print"<tr><td align=\"right\"><font color=\"white\">Добавил: $msg[3]</font></td></tr></table></td>";
                print"<td width=20 background=\"web_img/pol_ver_r.jpg\">
                </td>
                <tr><td width=20 height=20>
                <img border=\"0\" src=\"web_img/g3.jpg\" width=\"20\" height=\"20\">
                </td>
                <td width= height=20 background=\"web_img/pol_gor_n.jpg\">
                </td>
                <td width=20 height=20>
                <img border=\"0\" src=\"web_img/g4.jpg\" width=\"20\" height=\"20\">
                </td>
                </tr>
                </table>";
    }
}
view();
?>
Знаю, что тут нехватает многих проверок, но меня интересует немного другое, как записать строку, чтобы НУЖНЫЕ переносы строки превратить в <br>? Ведь \n в конце строки, дает понять функции file(), что сл. строку нужно записать в новую ячейку массива.
З.Ы. не ругайте сильно, я только учусь :)
 

kesha

Новичок
спасибо, но вопрос немного в другом, ведь данные записываются в формате
|||||\n
|||||\n
|||||\n
и вот допустим в текстовом поле я пишу
текст
с
переводом
строки
как сделать, чтобы последние \n не переформатировались в <br>?
 

Фанат

oncle terrible
Команда форума
kesha
ты до сих пор свою суперсложную задачу не решил?
 

kesha

Новичок
Фанат, так уже ж другая :)
с функцией записи я уже разобрался
видать ты плохо читаешь посты...
 

Фанат

oncle terrible
Команда форума
ох ти госьподи, как оно заговорило.
ну расскажи мне, невнимательному, что я не прочел. сделай такое одолжение. снизойди до тупенького.
 

kesha

Новичок
Фанат, давйа только без этого, а?
Я тебе не грубил и не груби мне пожалуйста.
У меня возникла уже совсем другая проблема, по поводу переноса строк
 

Фанат

oncle terrible
Команда форума
я у тебя здесь прочел только про одну проблему.
никакой разницы между твоим первым сообщением и вторым я не вижу.
что там тебя пугает последний перевод строки, что здесь.
только формулировка разная - там "как заменить нужные", а здесь - "как не заменять ненужные".
а задача все равно одна и та же - чтобы последний \n не заменялся на <br>

поэтому потрудись, есл уж ты разинул рот для того, чтобы упрекнуть МЕНЯ в невнимательности, описать этот "другой вопрос" СЛОВАМИ.
Что - кишка тонка? Тогда извинись.

-~{}~ 13.05.07 12:52:

Я бы тебе не грубил.
Но приходить на форум с абсолютно работоспособным скриптом, искать решение несуществующей проблемы, и при этом рассказывать другим про их невнимательность - это надо сильно большой талант иметь.
 

kesha

Новичок
Извини!
Но суть проблемы от этого не поменялась, и я имел в виду мой пост, по поводу функции fwrite()
 

Фанат

oncle terrible
Команда форума
твой пост по поводу функции fwrite() написан месяц назад.
какая у тебя новая проблема появилась?
что за чушь ты несешь?
 

kesha

Новичок
Фанат
проблема в следующем:
все сообщения записываются |дата|сообщение|...|\n
в сообщении могут быть символы перевода строки (\n), мне их нужно заменить на тег <br>, НО мне не нужно заменять последний символ \n на <br>, т.к. тогда file() не сможет понять где заканчивается строка, и будет выдавать совершенно не тот результат, что ожидается
 

Фанат

oncle terrible
Команда форума
Понятно, в общем.
Ты решил, что в этом посте, про перевод строки, я тебя спрашиваю про старую проблему.
Нет, я тебя спрашивал здесь, про описанную здесь проблему. Как это ни удивительно.

Но это ещё не самое удивительное.
Самое удивительное - в твоем вопросе.
Судя по коду, который ты здесь привел, никаких проблем с переводом строк у тебя быть не должно.

Ты уверен, что функция file(), "не понимает", что "сл. строку нужно записать в новую ячейку массива"?

-~{}~ 13.05.07 13:28:

ты хоть попробовал свой код запускать?
У тебя были с ним проблемы, которые ты здесь описываешь?
или они тебе приснились?
 

kesha

Новичок
ну понятное дело, если бы проблем не было, то я бы не создавал пост, когда я пишу сообщение типа:
----
текст
текст на сл. строке
3 строка
----

то выводится не один блок, а три блока, в первом:
---
текст
---
во втором:
---
текст на сл. строке
---
и третий блок:
---
3 строка
---
а мне нужно, чтобы это все выводилось в одном блоке:
---
текст
текст на сл. строке
3 строка
---
 

Фанат

oncle terrible
Команда форума
то есть, ты хочешь сказать, что код
PHP:
$message = ereg_replace (" 
        ", "<br>", $message);
у тебя не работает?
 

kesha

Новичок
не работал, я уже применял регулярные выражения, но как видишь в коде у меня этой функции нет
 

Фанат

oncle terrible
Команда форума
тьфу
ну разумеется, он не будет работать.
$message = preg_replace ("!\r?\n!", "<br>", $message);

-~{}~ 13.05.07 13:50:

но как видишь в коде у меня этой функции нет
как это нет?
а почему я её в коде вижу?
 

kesha

Новичок
сорри, просто код старенький выложил :)
ща попробую, что ты сказал, вот только не пойму зачем там \r?
извини, может вопрос несовсем корректный, я просто только вчера дошел до регулярных выражений
 
Сверху