BBcode на своём сайте

- PHP: библиотека xAJAX 1 - - PHP: библиотека xAJAX 2 - - PHP: библиотека xAJAX 3 -
В общем, логически думая - я пришёл к выводу, что скриптик этих кодов должен срабатывать перед добавлением тех же новостей в БД... Вот кусок кода добавления: Код: $htinl_recipe = nl2br($text); $data=date("j-m-Y G:i"); extract($_POST); @mysql_connect("localhost", "root", "") or die("Не могу подключиться к серверу MySQL!"); @mysql_select_db("portal") or die("Не могу подсоедениться к базе сайта!"); $sql = "INSERT into `news` VALUES ('', '$data', '$title', '$htinl_recipe', '$poster')"; $result = mysql_query($sql); Church www.php.net/str_replace www.php.net/preg_replace www.php.net/ereg_replace Знаю я этот сайт... Я английский не знаю ВООБЩЕ Ну что, сложно примерчик привести? :mol: Church Ну что, сложно примерчик привести? :mol: Для каждой функции внизу есть примерчики зы: либо смотри тут http://forum.ru-board.com/topic.cgi?forum=24&topic=2827#1 Коды (собственно, как и переделывание \n в <br>) должны обрабатываться после вывода из базы. В базе же должен храниться чистый текст, введенный в форму. А то захочешь потом одну какую-нибудь рюшечку исправить в своих кодах, а у тебя уже весь текст в базе (она может быть очень даже немаленькой) обработан. Писать функцию по обратному преобразованию? Sergeant Кульна... Хотя и логично... Но всё-равно.. Я пока что тока с \n разобрался Ну не получается ничего у меня другого.. Ну дайте вы ко-о-од... Плиииииизззззззз... Church Ну не получается ничего у меня другого.. Конкретнее.. Из этого я не понял, если честно %) [img][/img] Cheery http://i.ru-board.com/codes.html Там всё написано Вот мне такое же надо и у себя Church , вот например функция: function bbcode($news) { $news = addslashes($news); $news = preg_replace("/\[b\]([^\[\]]+)\[\/b\]/i","<b>\\1</b>",$news); $news = preg_replace("/\[i\]([^\[\]]+)\[\/i\]/i","<i>\\1</i>",$news); $news = preg_replace("/\[u\]([^\[\]]+)\[\/u\]/i","<u>\\1</u>",$news); $news = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/","<a href=\\1 target=_blank>\\2</a>",$news); $news = preg_replace("/\[email=(.*?)\](.*?)\[\/email\]/","<a href=mailto:\\1>\\2</a>",$news); $news = preg_replace("/\/\[url\]([^\[\]]+)\[\/url\]/i","<a href=\\1 target=_blank>\\1</a>",$news); $news = preg_replace("/\[url\](.*?)/","<a href=\\1 target=_blank>\\1</a>",$news); $news = preg_replace("/\[align=(.*?)\](.*?)\[\/align\]/","<div align=\\1>\\2</div>",$news); $news = preg_replace("/\[img\](.*?)\[\/img\]/","<img src='\\1' border=0>",$news); $news = preg_replace("/\[color=(.*?)\](.*?)\[\/color\]/","<font color=\\1>\\2</font>",$news); $news = preg_replace("/\[font=(.*?)\](.*?)\[\/font\]/","<font face=\\1>\\2</font>",$news); $news = preg_replace("/\[size=(.*?)\](.*?)\[\/size\]/","<font size=\\1>\\2</font>",$news); $news = preg_replace("/\[quote\]([^\[\]]+)\[\/quote\]/i","<blockquote><i>\\1</i></blockquote>",$news); $news = preg_replace("/\[image\](.*?)\[\/image\]/","<img border=0 src=\\1>",$news); $news = preg_replace("/\[flash\](.*?)\[\/flash\]/","<embed src=\"\\1\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\"></embed>",$news); $news = stripslashes($news); return $news; } И после того как ты получил свой $text из файла делаешь: $text = bbcode($text); Вот и все кино... ripperm Ооооооо..... Куль..... Спасибки.. Буду разбираться Church , если для новостей то нормально всё подойдёт, но если надумаешь код использовать для комментариев и т.п., то придётся кое-что добавить : Сюда $news = preg_replace("/\[image\](.*?)\[\/image\]/","<img border=0 src=\\1>",$news); $news = preg_replace("/\[img\](.*?)\[\/img\]/","<img src='\\1' border=0>",$news); ещё нужно будет добавить проверку того, что ссылки не начинаются на javascript: , иначе добрые пользователи могут начать любые javascript'ы на страницы вставлять. И заодно пробелы в ссылках неплохо заменять на %20 (или кавычки на %22)-- иначе вещи вроде такого: [no] [/no] могут ненароком в постах появиться... Svarga Сенькс.. Учту... В новостях мне как-то по барабану.. Там коментов нету... пока что.. А вот в гостевухе есть.... Вернее там тока коменты и есть Если в коде написать: [урл]http://test.ru[/урл] (Вместо урл - url) то приведенный выше листинг некорректно обрабатывает его. На выходе получается http://test.ru [/url]. Как это исправить? Как это исправить? PHP FAQ: Регулярные выражения. Код: $news = preg_replace("/\[url\](.*?) \[\/url\] /","<a href=\\1 target=_blank>\\1</a>",$news); Выдрал тут из новостного движка (Сutenews) BBCode, но что-то не хотят они вставляться ... Вот собственно сам файлик: http://slil.ru/22453006 Моет у кого-нибудь есть гтовый и работающий? Выдрал тут из новостного движка (Сutenews) BBCode, но что-то не хотят они вставляться ... С таким содержимым он и не должен работать. Ошибки в JS, ошибки в HTML.. С каких пор можно использовать два textarea с одним именем? 6epcepk Моет у кого-нибудь есть гтовый и работающий? на один пост выше твоего код BBcode парсера. я его использую, нормально работает. С таким содержимым он и не должен работать. Ошибки в JS, ошибки в HTML.. С каких пор можно использовать два textarea с одним именем? Да я сам удивляюсь как он работал ... но работал исправно (: Maxer А можно полностью скрипт (с JavaScript'om)? 6epcepk нет, это не javascript, это PHP код. сервак его выполняетЧто-нить типа такого... Цитирование с Ru-board'а содрал, вставку тэгов с другого форума.... Что-нибудь ещё нужно? Сдерем Тока сам JS-код лучше в отдельный файл вынести http://www.wb-studio.net/bbcode/ Maxer Я имел ввиду пользовательскую часть - кнопки, при нажатии на которые вставляются необходимые значения в поле. Church Только чёй-то работает вставка цитаты ... Только чёй-то работает вставка цитаты ... Не понял... Она и должна работать... Можно убрать... Там одна кнопка, с помощью которой производится форматирование текста в текстовом поле aka b,u,i и ссылка как на этом форуме, которая "цитирует" выделенный текст на странице. Church Ой, я очепятался (: Имелось в виду, что работает только цитирование. 6epcepk Ок.. Скорее всего из-за разных браузеров.. Я делал под IE5. Может так заработает: http://www.wb-studio.net/bbcode/ - ссылка та же, но теперь используются bbcode с phpbb и цитированию тоже самое отсюда. Church А сам "обработчик" данных, которые поступят из формы? Или ты используешь тот, что приведен на предыдущей странице? 6epcepk Я сейчас это не использую, но как я вижу тебе подойдут те, которые на прошлой страницы. Только смотри, чтобы всего хватало и чего не хватает - добавь по подобию плагин для смарти преобразующий bbcode в html вот открученное от LDU, и переделаное. почти как на борде ;) может кому-то нужно будет. использование: bb($переменная_с_текстом); http://rapidshare.de/files/8769979/parse_bb.php.html Выкладываю просто функцию, правильную скажем: Код: <?php function bb_to_html($content) { // Переносы строк $content = str_replace("\n", "<br />", $content); // Жирный, Курсив (Наклонный), Подчеркнутый, Перечеркнутый $content = preg_replace("/\[B\](.+?)\[\/B\]/", "<b>\\1</b>", $content); $content = preg_replace("/\[I\](.+?)\[\/I\]/", "<i>\\1</i>", $content); $content = preg_replace("/\[U\](.+?)\[\/U\]/", "<u>\\1</u>", $content); $content = preg_replace("/\[S\](.+?)\[\/S\]/", "<s>\\1</s>", $content); // Размер шрифта $content = preg_replace("/\[SIZE=(.+?)\](.+?)\[\/SIZE\]/", "<font size=\"\\1\">\\2</font>", $content); // Цвет шрифта $content = preg_replace("/\[COLOR=(.+?)\](.+?)\[\/COLOR\]/", "<font color=\"\\1\">\\2</font>", $content); // Выравнивание (По левому краю, По центру, По правому краю) $content = preg_replace("/\[LEFT\](.+?)\[\/LEFT\]/", "<div align=\"left\">\\1</div>", $content); $content = preg_replace("/\[CENTER\](.+?)\[\/CENTER\]/", "<div align=\"center\">\\1</div>", $content); $content = preg_replace("/\[RIGHT\](.+?)\[\/RIGHT\]/", "<div align=\"right\">\\1</div>", $content); // Вставить изображение $content = preg_replace("/\[IMG\](.+?)\[\/IMG\]/", "<img src=\"\\1\" border=\"0\">", $content); // Цитата $content = preg_replace("/\[Q\](.+?)\[\/Q\]/", "<b>Цитата:</b><br /><div class=\"quote\">\\1</div>", $content); // Смайлики $content = preg_replace("/\*(.+?)\*/", "<img src=\"/images/smiles/\\1.gif\" border=\"0\">", $content); return $content; } // Тест функции $text = " TEXT "; $text = bb_to_html($text); echo $text; ?> Поднимаю стару тему.. Столкнулся с такой проблемой - Либо ссылки заключенные в BB-теги, либо без них. А оба чтоб и так, и так - никак не работает. Я что-то делаю неправильно, поскольку на этом форуме все работает в обоих случаях. Подозреваю, что обрабатывается двумя Гуглил, куча вариантов, но в итоге совместно никак не работают. Код ниже, но чтобы не вводить в заблуждение, может у кого есть нормальное гоотвое решение? Код: [no] $textcomm=eregi_replace("\\[url\\]www.([^\\[]*)\\[/url\\]","<a href=\"http://www.\\1\" target=\"_blank\">\\1</a>",$textcomm); $textcomm=eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=\"_blank\">\\1</a>",$textcomm); $textcomm=eregi_replace("\\ +)\\]([^\\[]*)\\[/url\\]","<a href=\"http://\\1\" target=\"_blank\">\\2</a>",$textcomm); $textcomm=eregi_replace("((http|mailto|ftp):\/\/[^[:space:]<>]{1,})", "<a href=\"\\1\" target=\"_blank\">\\1</a>",$textcomm); [/no] Походу, уже никого не интересует эта тема Ну еще до кучи - автозакрытие тегов не хватает, в некоторых случаях можно запросто напартачить внешний вид страницы незакрытым тегом, еще яву скрипт можно впихнуть походу. короче, отказался от теговв URL и остановился на таком решении Код: $textcomm=eregi_replace("((http|https|ftp):\/\/[^[:space:]<>]{1,})", "<a href=\"\\1\" target=\"_blank\">\\1</a>",$textcomm); $textcomm = eregi_replace("www.([^[:space:]]*)", "<a href=\"http://www.\\1\" target=\"_blank\">www.\\1</a> ", $textcomm); Ausw посмотри тут вроде описывается работы как с bbcode так и автоматический парсинг. чччp://www.xbb.uz/docs/properties.bb если посмотреть в самом скрипте то там тег "А" и preg_autolinks вроде работают. чччp://www.xbb.uz/docs/properties.bb Там вообще другой алгоритм используется.. Правда, хороший.. не поспорю ) Church я думаю, что алгоритм всегда можно изменить, а в данном случае для человека важен результат! тем не менее, если кто поделится рабочими примерами (автоссылки + bb-code) с благодарностью приму. Не знаю насколько рабочие... Вроде бы работает... Только смотри, у тебя еще в [no][img][/no] будет бяка, если используешь этот код.. но суть думаю ясна, как это обходится. Код: [no] function replace_url_f1($matches) { return ' ).']'.base64_encode($matches[2]).' '; } function replace_url_f2($matches) { $b = base64_encode($matches[1]); return ' '.$b.' '; } function replace_url_back($matches) { return '<a href="'.base64_decode($matches[1]).'" target="_blank">'.base64_decode($matches[2]).'</a>'; } $textcomm = preg_replace_callback('/\[url=([^\]]+)\]([^\[]+)\[\/url\]/','replace_url_f1',$textcomm); $textcomm = preg_replace_callback('/\[url]([^\[]+)\[\/url\]/','replace_url_f2',$textcomm); $textcomm=eregi_replace("((http|https|ftp):\/\/[^[:space:]<>]{1,})", "<a href=\"\\1\" target=\"_blank\">\\1</a>",$textcomm); $textcomm = eregi_replace("www.([^[:space:]]*)", "<a href=\"http://www.\\1\" target=\"_blank\">www.\\1</a> ", $textcomm); $textcomm = preg_replace_callback('/\[url=([^\]]+)]([^\[]+)\[\/url\]/','replace_url_back',$textcomm); [/no] Church Да, супер, большое спасибо! Багов не замечено ) Ну про IMG я временно отложил, разберусь с ним позже.

Как "замутить" свой бизнес
Просьба оценить мой сайт http://www.DengiTut.ru/ Во-первых, содержание сайта, за исключением пары страниц (и то скопированных откуда-то), не соответствует названию. Я бы даже назвал это обманом посетителей. Во-вторых, указанные тебе ошибки при прошлом обсуждении ( topic.cgi?forum=25&topic=5491 ) не исправлены. Поиск, к примеру, как был нерабочим, так таким и остаётся.Название сайта образное, нет ни одного места в интернете, где можно было бы взять просто так деньги. Мой сайт пытается п...
Проблема с почтой при смене хостинга
Проблема такая. Руководство поменяла компанию на которой находился сайт и хостинг. Теперь начались проблемы с почтой. Внутри компании почта работает в оба конца. А если с внешних ящиков - то почта не работает на прием (POP). И почему то, когда пингую сайт фирмы - пишет старый адрес. Хотя из дома пинговал - пишет что обновился. В компании куда перенесли наш сайт и хостинг - мне сказали что от меня ничего не зависит и надо ждать когда обновится информация в DATA-центре. Подскажите что делать?...
AC Milan
Смотрю, тут много поклонников Милана... предлагаю обсуждать слухи, игру и игроков тут? Добавлено Обзор прессы La Gazzetta dello Sport Милан: 4 поражения подряд! 4 негативных матча: это и является причиной кризиса. Альбертини: "Ребята, соберитесь же! Не будем впадать в депрессию!" Индзаги: форвард примет участие в сегодняшней игре молодежной команды Милана; Шевченко вне игры и против Торино. Милан назначает дату для перехода Сандро Несты. Corriere ...
Проблема с Asus DRW 1608
Описываю проблему, может кто-то сталкивался. DVD RAM у меня такой (примерно, по параметрам) - http://market.yandex.ru/model.xml?hid=91035&modelid=762454&_=121 Краткое описание: неожиданно пропадает сигнал с рома во время работы с ним Подробности: Впервые проявилось когда я отсоединял IDE шлейф для взлома StarForce. После обратного подсоединения, устройство определялось системой, но не читала диски (даже не раскручивало; питание было, диод горел). Я зашел в диспетчер и от...

- /Computers/Games/Obshee - - /Computers/Hardware/CDDVD - - Archive - - /Computers/Games/ForumGames - - /Computers/Developing - - /Basic/Flame - - /Theme/IkonBoard/2 - - /Theme/CMS - - /Theme/IkonBoard/3 - - /Computers/Games/SportSimulators - - /Computers/Games/RPG - - /Internet/WebMaster - - /Internet/Hosting - - /Basic/Humour - - /UnderGround/GamesVideo - - /Basic/Books - - /UnderGround/eBooks - - /Internet/GetOut - - /Computers/Hardware/Choice - - /Basic/Sport/FootBall - - /Computers/Hardware/Periferal - - /Computers/Foto - - /Computers/OS/UNIX - - /Computers/OS/MicrosoftWindows - - /UnderGround/UnderGround - - /Computers/Games/ActionArcade - - /Theme/IkonBoard/Invision - - /UnderGround/Warez - - /Basic/Flame/Regional - - /Computers/Hardware/Base - - /Computers/Games/SmallGames - - /Basic/Sport/Prognoz - - /Basic/Sport/Chess - - /Computers/Sysadmin - - /Computers/Hardware/HDD - - /Computers/Hardware/Video - - /Computers/OS/Other - - /Computers/Soft - - /Internet/Graphics - - /Internet/Programming - - /Computers/Games/Strategy - - /Theme/IkonBoard/Other - - /Computers/Hardware/Drivers - - /Basic/Sport/Base - - /Theme/Mobiles - - /Basic/MusicVideo -
- 0 - - 1 - - 2 - - 3 -