[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Форматирование текста при выводе из бд.
droppboxx
Здравствуйте,

подскажите пожалуйста, уже третий день ломаю себе голову не могу написать правильно скрипт.

Буду выводить данные из бд. Хочу провести текст через фильтр и чтобы все линки на сайты выводились с , *слова* чтобы были bold, **слова** были italic и тд.

Возможно ли сделать это с помощью preg_repalce_callback?
Предположим что регулярное выражение я уже сочинил, но как сделать так чтобы например long стал bold, а text - italic

$text = "It is a very long text";
$pattern = array('~(long)~','~(text)~');

function next_year($matches)
{
return '<b>'.$matches[1].'</b>';
}
echo preg_replace_callback(
$pattern,
"next_year",
$text);



Спасибо!
droppboxx
Поправка:
Хочу провести текст через фильтр и чтобы все линки на сайты выводились с <a href=" " , *слова* чтобы были bold, **слова** были italic и тд.
Kusss
поищи реализацию bb кодов. Ну и по примеру их, сделаешь свой шаблон.
walerus
droppboxx
Если прям так как ты написал...
$text = "It is a very long text";
$pattern = array('~(long)~','~(text)~');
$pattern_r = array('<b>long</b>','<i>text</i>');
echo preg_replace( $pattern, $pattern_r, $text );

It is a very <b>long</b> <i>text</i>
droppboxx
вот нашел. Все работает. Спасибо!

function AddBB($var) {
$search = array(
'/\[b\](.*?)\[\/b\]/is',
'/\[i\](.*?)\[\/i\]/is',
'/\[u\](.*?)\[\/u\]/is',
'/\[img\](.*?)\[\/img\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/is'
);

$replace = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<u>$1</u>',
'<img src="$1" />',
'<a href="$1">$1</a>',
'<a href="$1">$2</a>'
);

$var = preg_replace ($search, $replace, $var);
return $var;
}
droppboxx
smile.gif
killer8080
Цитата (droppboxx @ 2.12.2016 - 18:57)
вот нашел. Все работает. Спасибо!

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

echo AddBB('[img ]http://phpforum.su/style_images/1/logo_andrey888.jpg" onload="alert(\'You are hacked\')"[/img]');


PS только пробел убери в [img ] :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.