как сделать перенос строк текста?

1. ★☆ ИгRok™ ☆★ (01.02.2011 / 23:41)
всем доброго времени суток! Ребята,как можно сделать перенос строк текста выводимого из БД? То,например,стих пишешь,нужно что бы каждая строчка,с новой строки была,а не получается! <br /> тут уже не отплатит! Подскажите,пожалуйста!

2. DURMAN (02.02.2011 / 00:19)
зависит от принципа хранения текста.
как вариант:
<?
echo nl2br($text);
?>


3. Марсель (02.02.2011 / 05:02)
wordwrap можно добавить)
чтобы длинных строчек небылоsmile

4. ★☆ ИгRok™ ☆★ (02.02.2011 / 08:27)
2. Спасибо,попробую.

5. ★☆ ИгRok™ ☆★ (02.02.2011 / 08:38)
не,не сработалоsad позже тогда покажу код страницы! Там вывод текста с навигацией

6. Петя (02.02.2011 / 08:45)
1. SoluS_AngeluS,
nl2br($_POST["text"]);
Не забудь перед добавлением в базу сделать addslashes or mysql_real_escape_string для $_POST["text"], иначе сайт поломают.
Выводить текст надо не в форму, а в страницу (или в тег).

7. ★☆ ИгRok™ ☆★ (02.02.2011 / 10:16)
6.не особо понял =( мне текст в любом случае через форму вводить! Ну я позже код покажу,щас времени просто нет!

8. Марсель (02.02.2011 / 10:40)
6, mysql_real_escape_string в полне хватит

9. Nu3oN (02.02.2011 / 11:42)
по идее nl2br() вполне достаточно, но можно еще такой велосипед
$str = str_replace("\n", '<br />' $str);

10. ★☆ ИгRok™ ☆★ (02.02.2011 / 12:40)
9.во это более подходит,щас пойду попробую

11. ★☆ ИгRok™ ☆★ (02.02.2011 / 12:52)
нет,тоже ни какого эффекта! Я после 15:00 напишу код,там заморочка с навигацией просто

12. Максим (02.02.2011 / 14:14)
<div style="text-align: justify;">любой текст</div>

Просто помещай текст в это блок и всё! Лично я так и делаю...

Добавлено через 04:11 сек.
Надеюсь тебе это нужно было?!)...

13. ★☆ ИгRok™ ☆★ (02.02.2011 / 14:48)
12.ты не понял! Я из базы вывожу текст с базы,у меня блог. Не знаю,попробую конечно,если подойдет,то отлично,а нет,тогда что-то другое

14. Максим (02.02.2011 / 16:42)
подойдёт!!! я тоже пишу сейчас блог)))

15. ★☆ ИгRok™ ☆★ (02.02.2011 / 17:59)
ну вот как у меня это все
<?php
$text = $res['text']; $symb_onpage = 500; # количество символов на страницу
$page = (isset($_GET['page'])) ? abs(intval($_GET['page'])) : 0; # номер страницы, дописывать в адресную строку (если не 0)
$text = iconv('utf-8','windows-1251', $res['text']);
$arr = str_split($text,$symb_onpage);
if(array_key_exists($page,$arr)) {
if(trim($arr[$page]) !== ''){
echo trim(iconv('windows-1251','utf-8',$arr[$page]));} }
else { echo 'Страницы не существует.<br />';}# Навигация
if(count($arr) !== 0 && count($arr) !== 1){ echo '<br />';
if($page != 0){
echo '<a href="'.$tid.'?page='.($page-1).'">&#171;Назад</a>';
echo '['.($page+1).']';} if($page != count($arr)-1){echo '<a href="'.$tid.'?page='.($page+1).'">Далее&#187;</a>';}
?>


16. Максим (02.02.2011 / 19:05)
ой, совсем ошибся (Я)

Добавлено через 01:53 сек.
усли честно в этом коде очень много лишнего и не оптимизированного...

Добавлено через 05:57 сек.
Зачем постоянно перекодировать? созда просто сопутсвующие функции.
sizeof гораздо быстрей count, не используй array_key_exists - делай просто: isseet($page[$arr]), ведь конструкция быстрей чем фунуция в десятки раз!!! Я не пытаюсь показать, что я лучше тебя пишу код, я тебе просто посоветовал как лучше! Я через эти тесты десятки раз прошел...

17. ★☆ ИгRok™ ☆★ (02.02.2011 / 19:56)
16.ну напиши тогда подробней,сам код,если можно

18. Марсель (02.02.2011 / 20:15)
автор просил переносник замутить, а не читалку txt.
Автор, как текст в базу заносишь?

19. Titov (02.02.2011 / 20:59)
при добавлении нада перенос делать тоже, тогда код который ниже будет работать
<?
$text = str_replace("\n", "<br />\n",$text);
?>


20. Максим (03.02.2011 / 04:19)
я с вас хринею.... <pre>текст</pre>

И выведет что надо и как надо...

21. ramzes (03.02.2011 / 06:34)
16. АвтоGnom,с какого перепоя сайзоф стал быстрее коунта? О_о

22. KOZZ (03.02.2011 / 07:20)
21. ramzes, ну он же тестировал bugaga

23. Nu3oN (03.02.2011 / 08:27)
зы isset() это тоже функция

24. ★☆ ИгRok™ ☆★ (03.02.2011 / 10:08)
всем спасибо,буду пробовать все варианть

25. Марсель (03.02.2011 / 10:46)
Как в базу заносишь? чем фильтруешь и т.д? В этом причина может \=

26. ★☆ ИгRok™ ☆★ (03.02.2011 / 11:12)
25.домой приеду часов в 5 по москве,покажу

27. ★☆ ИгRok™ ☆★ (03.02.2011 / 16:59)
добавляю так
<?php
echo '<div class="sup">Добавить статью:</div>
<div class="tit"><form action="admin_cat.php?mod=add_text&amp;cid='.$cid.'" method="post" />
* Название:<br /><input type="text" name="title" class="input" /><br />
* Текст:<br /><textarea name="text" cols="40" rows="5" class="input"></textarea><br /><input type="submit" value="Добавить&#187;" class="submit" /><br/></form></div>';
}
break;

case 'add_text':

if(isset($_POST['title']) && isset($_POST['text'])){
$cid = (int)$_GET['cid'];
$title2 = filter($_POST['title']);$text = filter($_POST['text']);
if(empty($title2) OR empty($text)) die('Заполните все поля.');

mysql_query('INSERT INTO text SET cid = "'.$cid.'", author = "'.$res['login'].'", title = "'.$title2.'", text = "'.$text.'", time = "'.time().'"');
echo '<div class="sup">Результат:</div><div class="tit">Статья добавлена.</div>';
}
?>


28. Максим (03.02.2011 / 17:10)
21. ramzes,

0.3295
for ($i=0;$i<1000000;$i++) {
$s = sizeof($mass);
}

0.3308
for ($i=0;$i<1000000;$i++) {
$s = count($mass);
}

Добавлено через 01:11 сек.
22. Ботаник eGo, следи за собой
bugaga

Добавлено через 05:32 сек.
23. Nu3oN, если isset() это функция, то if тоже п твоему

29. Nu3oN (03.02.2011 / 18:12)
Если для тебя isset это конструкция, то спорить с тобой неочем!
http://php.net/manual/en/function.isset.php
---
Не знаю как ты считал, но у меня так выходит
sizeof: 0.7677, 0.6463, 0.7039
count: 0.7068, 0.6366, 0.6714

30. Nu3oN (03.02.2011 / 18:26)
27. SoluS_AngeluS, покажи функцию filter()

31. ★☆ ИгRok™ ☆★ (03.02.2011 / 18:40)
30.ща,скопирую

Добавлено через 05:24 сек.
function filter($str){return trim(mysql_real_escape_string(htmlentities($str, ENT_QUOTES, 'UTF-8')));}

32. Максим (03.02.2011 / 19:13)
29. Nu3oN,
sizeof: 0.7677, 0.6463, 0.7039
count: 0.7068, 0.6366, 0.6714

както странно...

33. Максим (03.02.2011 / 19:34)
а пра isset я совсеи на*** не то загнал, *** выразился изначально сам не правильно и пытаюсь чтото доказать... ***

34. ramzes (03.02.2011 / 19:49)
АвтоGnom (3 Февраля 2011 / 19:13)
29. Nu3oN,
sizeof: 0.7677, 0.6463, 0.7039
count: 0.7068, 0.6366, 0.6714

както странно...
твои результаты не менее странные)))
собственно я почему обратил внимание на эту глупость:
sizeof() это псевдоним для count().
go to php.su hello

35. ★☆ ИгRok™ ☆★ (03.02.2011 / 20:28)
мужики,вы на своей волне D про меня не забыли?

36. ramzes (03.02.2011 / 20:35)
function filter($str){return str_replace("\n", '[br], trim(mysql_real_escape_string(htmlentities($str, ENT_QUOTES, 'UTF-8'))));}
при выводе
echo str_replace('[br]', '<br />, $text);

37. Nu3oN (03.02.2011 / 20:44)
ramzes (3 Февраля 2011 / 20:35)
function filter($str){return str_replace("\n", '[br], trim(mysql_real_escape_string(htmlentities($str, ENT_QUOTES, 'UTF-8'))));}
при выводе
echo str_replace('[br]', '<br />, $text);
Эммм... а если он решит использовать при фильтрации названия например! и названия будут с переносами!
тогда уже как то так надо
<?php 
function filter($str, $br=false)
{

    if ($br) {
     $str = str_replace("\n", '[br]', $str);
    }

    $str = trim(mysql_real_escape_string(htmlentities($str, ENT_QUOTES, 'UTF-8')));
    return $str;
}
?>


38. ramzes (03.02.2011 / 20:47)
37. Nu3oN,
if ($br) {
$str = str_replace("\n", '[br]', $str);
} else {
$str = str_replace("\n", ' ', $str);
}
тогда такsmile
если проявить внимание к тому что перенос строки аналогичен пробелу в форматировании текста
т.е не давать строкам слипнутся

39. ★☆ ИгRok™ ☆★ (03.02.2011 / 21:55)
мне кажется пост 37 более подходящий,если функция фильтрации та же,плюс перенос,вобще шикарно! Буду пробовать

40. Nu3oN (03.02.2011 / 22:40)
но а вообще по мне так это велосипед

Добавлено через 06:21 сек.
Во блин! даже не подумал...
mysql_real_escape_string() добавляет слеш перед \n \r
уберай эти слеши stripslashes()

Добавлено через 09:53 сек.
http://php.net/manual/en/function.mysql-real-escape-string.php
mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', " and \x1a.


URL: https://visavi.net/topics/18409