droppboxx
2.12.2016 - 14:34
Здравствуйте,
подскажите пожалуйста, уже третий день ломаю себе голову не могу написать правильно скрипт.
Буду выводить данные из бд. Хочу провести текст через фильтр и чтобы все линки на сайты выводились с , *слова* чтобы были 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
2.12.2016 - 15:52
Поправка:
Хочу провести текст через фильтр и чтобы все линки на сайты выводились с <a href=" " , *слова* чтобы были bold, **слова** были italic и тд.
поищи реализацию bb кодов. Ну и по примеру их, сделаешь свой шаблон.
walerus
2.12.2016 - 18:29
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
2.12.2016 - 18:57
вот нашел. Все работает. Спасибо!
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
2.12.2016 - 19:37
killer8080
3.12.2016 - 18:07
Цитата (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 ] :)
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.