&nbsp - для выделения абзацев

  • Автор темы Illusive
  • Дата начала

Illusive

Guest
&nbsp - для выделения абзацев

Добрый день. Вот такое недоразумение имеет место быть.
//Обрабатываю входящие данные
PHP:
if (isset($_POST['submit'])) 
  {foreach($_POST as $key => $value) 
    {$value=trim($value); 
     if (get_magic_quotes_gpc()) $value = stripslashes($value); 
     $value=htmlspecialchars($value,ENT_QUOTES); 
     $_POST[$key]=$value;
     $value=str_replace("\r","",$value); 
//Обратите внимание на следующую строку. Тут, типа, добавляются спецсимволы для выделеняи абзацев
     $value=str_replace("\n","<br>&nbsp;&nbsp;",$value); 
     $$key=$value; 
    }


//Вносим данные в таблицу 
   $short=addslashes($_POST['short']);
   $long =addslashes($_POST['long']);

     $result=mysql_query("INSERT INTO local_news 
       (short_n,long_n) VALUES ('$short','$long')");
   header("Location: [url]http://[/url]".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
   exit();

  }
//ЕСли submit пустой, выводим данные из таблицы
else
  {$result=mysql_query("SELECT * FROM local_news")
        or die("Could not connect: " . mysql_error());

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
       {echo nl2br($row['short_n'])."<br>";
        echo nl2br($row['long_n'])."<br>";
       }
  }
Тут вот что происходит
Вместо того, чтобы выводить данные по абзацам, типа
Код:
  йцуке нггшш гшггг
чсячсчсс с чс ячс.
  ннене не не нн ен е
рп рп р.
Выводит так
Код:
йцуке нггшш гшггг
чсячсчсс с чс ячс.
ннене не не нн ен е
рп рп р.
Т.е. &nbsp куда-то при выводе пропадают... понимаю, что туплю, но сам не могу сообразить, где именно.
 
ты в html глянь как выводит и поймешь куда деваються &nbsp;
 

SiMM

Новичок
Re: &nbsp - для выделения абзацев

Автор оригинала: Illusive
&nbsp - для выделения абзацев
Не правильнее ли для этой задачи использовать стили? К примеру,
Код:
<p style=text-indent:20>Абзац</p>
- думаю, идея ясна (реализация - хромает, прошу отнестись к ней лишь как к наглядному примеру ;) ).
 

Illusive

Guest
Re: Re: &nbsp - для выделения абзацев

Автор оригинала: nofx
ты в html глянь как выводит и поймешь куда деваються &nbsp;
У меня вот такая байда в html выходит
егнег<br />
ывавыаывавыаываыва<br>545345<br />
534535345535<br>
Ну, <br /> - это nl2br отрабатывает. Куда пробелы деваются - не ясно..

Автор оригинала: SiMM
Не правильнее ли для этой задачи использовать стили? К примеру,
Код:
<p style=text-indent:20>Абзац</p>
- думаю, идея ясна (реализация - хромает, прошу отнестись к ней лишь как к наглядному примеру ;) ).
Explode использовать? Я думал над этим. А без него никак не обойтись?

-~{}~ 07.04.04 12:45:

Вот тут я стормозил
PHP:
if (isset($_POST['submit'])) 
  {foreach($_POST as $key => $value) 
    {$value=trim($value); 
     if (get_magic_quotes_gpc()) $value = stripslashes($value); 
     $value=htmlspecialchars($value,ENT_QUOTES); 
     $_POST[$key]=$value; 
     $value=str_replace("\r","",$value); 
     $value=str_replace("\n","<br>&nbsp;&nbsp;",$value); 
//В следующей строке присваивание не происходило почему-то.
     $$key=$value; 
    }
А вот так работает
PHP:
if (isset($_POST['submit'])) 
  {foreach($_POST as $key => $value) 
    {$value=trim($value); 
     if (get_magic_quotes_gpc()) $value = stripslashes($value); 
     $value=htmlspecialchars($value,ENT_QUOTES); 
     $value=str_replace("\r","",$value); 
     $value=str_replace("\n","<br>&nbsp;&nbsp;",$value); 
     $_POST[$key]=$abzac.$value;
    }
еще и короче на строку получилось. :о)

Спасибо всем за участие. :о))
 

pluton

Guest
Re: &nbsp - для выделения абзацев

Originally posted by Illusive
Добрый день. Вот такое недоразумение имеет место быть.
//Обрабатываю входящие данные
PHP:
if (isset($_POST['submit'])) 
  {foreach($_POST as $key => $value) 
    {$value=trim($value); 
     if (get_magic_quotes_gpc()) $value = stripslashes($value); 
     $value=htmlspecialchars($value,ENT_QUOTES); 
     $_POST[$key]=$value;
     $value=str_replace("\r","",$value); 
//Обратите внимание на следующую строку. Тут, типа, добавляются спецсимволы для выделеняи абзацев
     $value=str_replace("\n","<br>&nbsp;&nbsp;",$value); 
     $$key=$value; 
    }


//Вносим данные в таблицу 
   $short=addslashes($_POST['short']);
   $long =addslashes($_POST['long']);

     $result=mysql_query("INSERT INTO local_news 
       (short_n,long_n) VALUES ('$short','$long')");
   header("Location: [url]http://[/url]".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
   exit();

  }
//ЕСли submit пустой, выводим данные из таблицы
else
  {$result=mysql_query("SELECT * FROM local_news")
        or die("Could not connect: " . mysql_error());

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
       {echo nl2br($row['short_n'])."<br>";
        echo nl2br($row['long_n'])."<br>";
       }
  }
Тут вот что происходит
Вместо того, чтобы выводить данные по абзацам, типа
Код:
  йцуке нггшш гшггг
чсячсчсс с чс ячс.
  ннене не не нн ен е
рп рп р.
Выводит так
Код:
йцуке нггшш гшггг
чсячсчсс с чс ячс.
ннене не не нн ен е
рп рп р.
Т.е. &nbsp куда-то при выводе пропадают... понимаю, что туплю, но сам не могу сообразить, где именно.
А ты попробуй абзацы разделять <p> а не <br>
 

Illusive

Guest
Автор оригинала: Winer
Illusive

а ты действительно такой хидер посылаешь, или это так ???
Не.. это мусор какой-то.. На таком хидере должно очень громко ругаться. :)
 

XtremallyPurpur

Новичок
Еще есть такой подход - вставлять пустое изображение вместо & nbsp ;

Что-то в этом роде:
PHP:
<img src="empty_img.gif" height="1" width="твой отступ"> йцуке нггшш гшггг
чсячсчсс с чс ячс.
<img src="empty_img.gif" height="1" width="твой отступ">ннене не не нн ен е
рп рп р.
 

Illusive

Guest
Ну, это сработает только если каждую строку выводить по одиночке. А у меня текст будет блоком идти, сразу несколько абзацев в одной переменной. Мне предварительное форматирвание проще сделать.
Но за идею - спасибо. :)

Собственно, я разобрался уже с проблемой. :о) В четвертом посте написал.
 
Сверху