Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: nl2br и ajax

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Viper
Отправлено: 03 Октября, 2008 - 19:29:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




есть функция для обработки текста:
CODE (text):
скопировать код в буфер обмена
  1. function BBCode2Html($text) {
  2.         $text = trim($text);
  3.  
  4.         // BBCode [code]
  5.         if (!function_exists('escape')) {
  6.                 function escape($s) {
  7.                         global $text;
  8.                         $text = strip_tags($text);
  9.                         $code = $s[1];
  10.                         $code = htmlspecialchars($code);
  11.                         $code = str_replace("[", "[", $code);
  12.                         $code = str_replace("]", "]", $code);
  13.                         return '<pre><code>'.$code.'</code></pre>';
  14.                 }      
  15.         }
  16.         $text = preg_replace_callback('/\[code\](.*?)\[\/code\]/ms', "escape", $text);
  17.        
  18.         // BBCode to find...
  19.         $in = array(     '/\[b\](.*?)\[\/b\]/ms',      
  20.                                          '/\[i\](.*?)\[\/i\]/ms',
  21.                                          '/\[u\](.*?)\[\/u\]/ms',
  22.                                          '/\[img\](.*?)\[\/img\]/ms',
  23.                                          '/\[email\](.*?)\[\/email\]/ms',
  24.                                          '/\[url\="?(.*?)"?\](.*?)\[\/url\]/ms',
  25.                                          '/\[size\="?(.*?)"?\](.*?)\[\/size\]/ms',
  26.                                          '/\[color\="?(.*?)"?\](.*?)\[\/color\]/ms',
  27.                                          '/\[quote](.*?)\[\/quote\]/ms',
  28.                                          '/\[list\=(.*?)\](.*?)\[\/list\]/ms',
  29.                                          '/\[list\](.*?)\[\/list\]/ms',
  30.                                          '/\[\*\]\s?(.*?)\n/ms'
  31.         );
  32.         // And replace them by...
  33.         $out = array(    '<strong>\1</strong>',
  34.                                          '<em>\1</em>',
  35.                                          '<u>\1</u>',
  36.                                          '<img src="\1" alt="\1" />',
  37.                                          '<a href="mailto:\1">\1</a>',
  38.                                          '<a href="\1">\2</a>',
  39.                                          '<span style="font-size:\1%">\2</span>',
  40.                                          '<span style="color:\1">\2</span>',
  41.                                          '<blockquote>\1</blockquote>',
  42.                                          '<ol start="\1">\2</ol>',
  43.                                          '<ul>\1</ul>',
  44.                                          '<li>\1</li>'
  45.         );
  46.         $text = preg_replace($in, $out, $text);
  47.        
  48.         // paragraphs
  49.         $text = str_replace("\r", "", $text);
  50.         $text = "<p>".ereg_replace("(\n){2,}", "</p><p>", $text)."</p>";
  51.         $text = nl2br($text);
  52.        
  53.         // clean some tags to remain strict
  54.         // not very elegant, but it works. No time to do better ;)
  55.         if (!function_exists('removeBr')) {
  56.                 function removeBr($s) {
  57.                         return str_replace("<br />", "", $s[0]);
  58.                 }
  59.         }      
  60.         $text = preg_replace_callback('/<pre>(.*?)<\/pre>/ms', "removeBr", $text);
  61.         $text = preg_replace('/<p><pre>(.*?)<\/pre><\/p>/ms', "<pre>\\1</pre>", $text);
  62.  
  63.         $text = preg_replace_callback('/<ul>(.*?)<\/ul>/ms', "removeBr", $text);
  64.         $text = preg_replace('/<p><ul>(.*?)<\/ul><\/p>/ms', "<ul>\\1</ul>", $text);
  65.        
  66.         return $text;
  67. }


проблема в том что все передается через ajax. и в окне предпросмотра \n не заменяется на <br /> или даже на визуальный перевод строки. т.е. вместо

123
1

выводится


как это можно поправить ?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
valenok Модератор
Отправлено: 04 Октября, 2008 - 12:16:56
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




echo "123<br/>1"


-----
Truly yours, Sasha.
 
My status
 Top
Viper
Отправлено: 04 Октября, 2008 - 18:03:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




valenok пишет:
echo "123<br/>1"


хм... заработало... волшебство прям...


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB