Файл: inc/bb.php
Строк: 50
<?php
// <br/> => n
function br2nl($str) {
$str = preg_replace('/<br(s*)?/?>/i', PHP_EOL, $str);
return $str;
}
// Функция ББ кодов
function bb($str) {
// Перенос текста
$str = preg_replace('#[br]#si', '<br/>', $str);
// Жирный шрифт
$str = preg_replace('#[b](.*?)[/b]#si', '<b>1</b>', $str);
// Наклоненный шрифт
$str = preg_replace('#[i](.*?)[/i]#si', '<i>1</i>', $str);
// Подчеркнутый шрифт
$str = preg_replace('#[u](.*?)[/u]#si', '<u>1</u>', $str);
// Зачеркнутый шрифт
$str = preg_replace('#[del](.*?)[/del]#si', '<del>1</del>', $str);
// Маленький шрифт
$str = preg_replace('#[small](.*?)[/small]#si', '<small>1</small>', $str);
// Цветной шрифт
$str = preg_replace('#[color=(.*?)](.*?)[/color]#si', '<font color="1">2</font>', $str);
// Градиент текста
$str = preg_replace('#[gradient=(.*?),(.*?)](.*?)[/gradient]#si', '<span style="background: linear-gradient(135deg, 1 20%, 2 70%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;">3</span>', $str);
// Цитата
$str = preg_replace('#[cit](.*?)[/cit]#si', '<div class="cit">1</div>', $str);
// Подсветка кода
$str = preg_replace_callback(
'#[php](.*?)[/php]#si',
function($matches) {
$code = $matches[1];
$code = htmlspecialchars_decode($code, ENT_QUOTES);
$code = highlight_string($code, true);
$code = br2nl($code);
return $code;
},
$str
);
return $str;
}
// Видео с YouTube
function bbyoutube($str) {
$str = preg_replace('#[youtube=(.*?)]#si', '<iframe width="100%" src="https://www.youtube.com/embed/1" frameborder="0" allowfullscreen></iframe>', $str);
return $str;
}
// Ссылки
function bblinks($link) {
$link = preg_replace_callback(
'~\[url=(https?://.+?)\](.+?)\[/url\]|(https?://[0-9a-zA-Z.-]+.[0-9a-zA-Z]{2,6}[0-9a-zA-Z/?.-~&;_=%:#+]*)~',
function($matches) {
$regexp = '#^https?://'.$_SERVER['HTTP_HOST'].'/?(.*?)$#i';
if (isset($matches[3])) {
$url = '<a data-noajax href="' . (preg_match($regexp, $matches[3]) ? $matches[3] : '/go/' . base64_encode($matches[3])) . '">' . $matches[3] . '</a>';
} else {
$url = '<a data-noajax href="' . (preg_match($regexp, $matches[1]) ? $matches[1] : '/go/' . base64_encode($matches[1])) . '">' . $matches[2] . '</a>';
}
return $url;
},
$link
);
return $link;
}
// Функция вывода смайлов
function smiles($str) {
$smiles = GlobFiles::findByMask(GlobFiles::MaskSmiles, GlobFiles::Smiles, true);
foreach ($smiles as $file) {
$smile = basename($file);
$str = str_replace(':' . mb_substr($smile, 0, -4) . ':', '<img src="/img/smiles/' . $smile . '" alt="smile">', $str);
}
return $str;
}