$smiles['admin'][':)'] = 'ulibka.gif';
$smiles['admin'][';)'] = 'hello.gif';
$smiles['admin'][':('] = 'image3.gif';
$smiles['moderator'][':)'] = 'ulibka.gif';
$smiles['moderator'][';)'] = 'hello.gif';
$smiles['moderator']['<:)'] = 'image18.gif';
$smiles['guest'][':)'] = 'ulibka.gif';
$smiles['guest'][';)'] = 'hello.gif';
Как организовать BB - коды.
Мож кто подскажет, как это сделать. А еще лучше выложит скрипт. Буду очень благодарен. Если есть варианты с менее обширными вожможностями, пойдут и они.
СПАСИБА!
Читай подпись shaelf, писать скрипт никто не будет по доброте душевной...:p
Как-как... Пиши регулярные выражения для обработки ББ-кодов!А чтобы для каждого были определённые коды - храни в БД (или где-нить) какие ББ коды доступны юзеру, админу и т.д., а потом при посещении, юзером например, делай выборку доступных BB-кодов и формируй форму ввода сообщения(или чего там)....
Вот пример:
Код:
Теперь неавторизированный пользователь будет иметь имя guest, а авторизированным будет только admin или moderator. Реализуем это так:
Код:
$access = 'moderator';
Далее поступаем так:
Код:
foreach($smiles[$access] as $motion=>$image)
echo "$motion соответствует картинка $image\n";
echo "$motion соответствует картинка $image\n";
Если вы сами для себя програмируете, то могу вам предложить работать со мной, у меня есть популярный сайт куда много чего можно написать интерестного.
Это не про site.art-web.biz случайно?)
eliteMOBILE.net - переписал мой пост!!! :\ А твой пост скорее просто реклама...
Сам принцип то мне понятен, нужен (был) конкретный код. Но всеравно спасибо за советы. Я структурно сделал так.
Есть переменная с текстом $text. Есть несколько функций.
bb2html(); - преобразует ББтеги в переменной в хтмл-теги.
Как она это делает.
Код:
function bb2html($source)
{
preg_match_all("'\[(.*)\]'U",$source,$arx);//выбираем из пер-ной все ББ теги
$safe_tags=delScr($tags[0]);//удаляем возможный скрипт
$source=str_replace($tags[0],$safe_tags[$i],$source);//зам-ем в исходной пер-ной сарые теги новыми - без скриптов
$source=toSafeText($source);//еще раз обезопасимся :)
$find = array(
"'\x20{3,}'",
"'\[b\](.*?)\[/b\]'i",
"'\[i\](.*?)\[/i\]'i",
"'\[u\](.*?)\[/u\]'i",
"'\[url\](.*?)\[/url\]'i",
"'\[url=(.*?)\](.*?)\[/url\]'i",
);
$replace = array(
"<img class='tabs' />",
"<b>\\1</b>",
"<i>\\1</i>",
"<u>\\1</u>",
"<a href=\"\\1\">\\1</a>",
"<a href=\"\\1\">\\2</a>",
);
$source = preg_replace($find,$replace,$source);
return $source;
};
function delScr($str)
{
$inv_sum = array(
"'^\s'",
"'$\s'",
"'[();\'\"]'i",
"'(javascript|vbscript):.*[^\]>]'i"
);
$val_sum = array(
'_',
'',
'_',
"java script:WarMes()",
);
if (is_array($str))
{
for ($i=0;$i<count($str);$i++){
$str[$i]=preg_replace($inv_sum,$val_sum,$str[$i]);
}
}
else
{
$str=preg_replace($inv_sum,$val_sum,$str);
}
return $str;
}
{
preg_match_all("'\[(.*)\]'U",$source,$arx);//выбираем из пер-ной все ББ теги
$safe_tags=delScr($tags[0]);//удаляем возможный скрипт
$source=str_replace($tags[0],$safe_tags[$i],$source);//зам-ем в исходной пер-ной сарые теги новыми - без скриптов
$source=toSafeText($source);//еще раз обезопасимся :)
$find = array(
"'\x20{3,}'",
"'\[b\](.*?)\[/b\]'i",
"'\[i\](.*?)\[/i\]'i",
"'\[u\](.*?)\[/u\]'i",
"'\[url\](.*?)\[/url\]'i",
"'\[url=(.*?)\](.*?)\[/url\]'i",
);
$replace = array(
"<img class='tabs' />",
"<b>\\1</b>",
"<i>\\1</i>",
"<u>\\1</u>",
"<a href=\"\\1\">\\1</a>",
"<a href=\"\\1\">\\2</a>",
);
$source = preg_replace($find,$replace,$source);
return $source;
};
function delScr($str)
{
$inv_sum = array(
"'^\s'",
"'$\s'",
"'[();\'\"]'i",
"'(javascript|vbscript):.*[^\]>]'i"
);
$val_sum = array(
'_',
'',
'_',
"java script:WarMes()",
);
if (is_array($str))
{
for ($i=0;$i<count($str);$i++){
$str[$i]=preg_replace($inv_sum,$val_sum,$str[$i]);
}
}
else
{
$str=preg_replace($inv_sum,$val_sum,$str);
}
return $str;
}
В данном варианте не происходит замены в теге {url}{/url}, но это поправимо.
WarMes(); - функция на яваскрипт, которая сообщает о замене.
toSafeText(); - ф-я на PHP удаляющая кавычки и пр символы.
2merlex а если б ты воспользовался поиском по форуму, то ивидел бы кучу ссылок на различные классы для работы с BBcode, т.к. эта тема обсасывается тут постоянно.