Php + регульрка из html в bb code

Статус
В этой теме нельзя размещать новые ответы.

rasandrey

Участник
Регистрация
2 Апр 2009
Сообщения
214
Реакции
6
Приветствую!
Помогите, плиз с такой функцией:

Есть функция, которая переводить bb код в html, функция такая:

PHP:
function BbToHtml($str) {
    $str = preg_replace("/\[b\](.+)\[\/b\]/Usi","<strong>\\1</strong>",$str);
    $str = preg_replace("/\[i\](.+)\[\/i\]/Usi","<em>\\1</em>",$str);
    $str = preg_replace("/\[u\](.+)\[\/u\]/Usi","<u>\\1</u>",$str);
    $str = preg_replace("/\[s\](.+)\[\/s\]/Usi","<s>\\1</s>",$str);
    $str = preg_replace("/\[img\](.*)\[\/img\]/Usi","<div style=\"text-align:center\"><img src=\"\\1\" border=\"0\" /></div>",$str);
    $str = str_replace("[url=http://","[url=",$str) ;
    $str = preg_replace("/\[url=(.*)\](.+)\[\/url\]/Usi","<a target=\"blank\" href=\"http://\\1\">\\2</a>",$str);
    $str = str_replace("[yt=http://youtu.be/","[yt=http://www.youtube.com/embed/",$str) ;
    $str = preg_replace("/\[yt=(.*)\]\[\/yt\]/Usi","<div style=\"text-align:center\"><iframe  width=\"560\" height=\"345\" src=\"\\1\" frameborder=\"0\" allowfullscreen></iframe></div>",$str);
    return $str;
}

нужно сделать обратную функцию, т.е. из получившегося html сделать обратно BB code, максимум, что я осилил, это:

PHP:
function HtmlToBb($str) {
    $str = zamena_str_nazad($str) ;
    $str = preg_replace("/<strong>(.+)<\/strong>/Usi","[b]\\1[/b]",$str);
    $str = preg_replace("/<em>(.+)<\/em>/Usi","[i]\\1[/i]",$str);
    $str = preg_replace("/<u>(.+)<\/u>/Usi","[u]\\1[/u]",$str);
    $str = preg_replace("/<s>(.+)<\/s>/Usi","[s]\\1[/s]",$str);
    //$str = preg_replace("/\[img\](.*)\[\/img\]/Usi","<div style=\"text-align:center\"><img src=\"\\1\" border=\"0\" /></div>",$str);
    //$str = str_replace("[url=http://","[url=",$str) ;
    //$str = preg_replace("/\[url=(.*)\](.+)\[\/url\]/Usi","<a target=\"blank\" href=\"http://\\1\">\\2</a>",$str);
    //$str = str_replace("[yt=http://youtu.be/","[yt=http://www.youtube.com/embed/",$str) ;
    //$str = preg_replace("/\[yt=(.*)\]\[\/yt\]/Usi","<div style=\"text-align:center\"><iframe  width=\"560\" height=\"345\" src=\"\\1\" frameborder=\"0\" allowfullscreen></iframe></div>",$str);
    return $str;
}
 
Все, разобрался, кому нужны будут функции из bb в html или из html в bb, то 2 рабочие функции

PHP:
//перевод из BB кода в HTML
function BbToHtml($str) {
    $str = preg_replace("/\[b\](.+)\[\/b\]/Usi","<strong>\\1</strong>",$str);
    $str = preg_replace("/\[i\](.+)\[\/i\]/Usi","<em>\\1</em>",$str);
    $str = preg_replace("/\[u\](.+)\[\/u\]/Usi","<u>\\1</u>",$str);
    $str = preg_replace("/\[s\](.+)\[\/s\]/Usi","<s>\\1</s>",$str);
    $str = preg_replace("/\[img\](.*)\[\/img\]/Usi","<div style=\"text-align:center\"><img src=\"\\1\" border=\"0\" /></div>",$str);
    $str = str_replace("[url=http://","[url=",$str) ;
    $str = preg_replace("/\[url=(.*)\](.+)\[\/url\]/Usi","<a target=\"blank\" href=\"http://\\1\">\\2</a>",$str);
    $str = str_replace("[yt=http://youtu.be/","[yt=http://www.youtube.com/embed/",$str) ;
    $str = preg_replace("/\[yt=(.*)\]\[\/yt\]/Usi","<div style=\"text-align:center\"><iframe  width=\"560\" height=\"345\" src=\"\\1\" frameborder=\"0\" allowfullscreen></iframe></div>",$str);
    return $str;
}
//*
 
//перевод из HTML в BB код
function HtmlToBb($str) {
    $str = zamena_str_nazad($str) ;
    $str = preg_replace("/<strong>(.+)<\/strong>/Usi","[b]\\1[/b]",$str);
    $str = preg_replace("/<em>(.+)<\/em>/Usi","[i]\\1[/i]",$str);
    $str = preg_replace("/<u>(.+)<\/u>/Usi","[u]\\1[/u]",$str);
    $str = preg_replace("/<s>(.+)<\/s>/Usi","[s]\\1[/s]",$str);
    $str = preg_replace("/<div style=\\\"text-align:center\\\"><img src=\\\"(.+)\\\" border=\\\"0\\\" \/><\/div>/Usi","[img]\\1[/img]",$str);
    $str = preg_replace("/<a target=\\\"blank\\\" href=\\\"(.*)\\\">(.*)<\/a>/Usi","[url=\\1]\\2[/url]",$str);
    $str = str_replace("[url=http://","[url=",$str) ;
    $str = preg_replace("/<div style=\\\"text-align:center\\\"><iframe  width=\\\"560\\\" height=\\\"345\\\" src=\\\"(.*)\\\" frameborder=\\\"0\\\" allowfullscreen><\/iframe><\/div>/Usi","[yt=\\1][/yt]",$str);
    $str = str_replace("[yt=http://youtu.be/","[yt=http://www.youtube.com/embed/",$str) ;
    return $str;
}
//*
 
PHP:
function HtmlToBb($str) {
    $str = preg_replace("/<strong>(.+)<\/strong>/Usi","[b]\\1[/b]",$str);
    $str = preg_replace("/<em>(.+)<\/em>/Usi","[i]\\1[/i]",$str);
    $str = preg_replace("/<u>(.+)<\/u>/Usi","[u]\\1[/u]",$str);
    $str = preg_replace("/<s>(.+)<\/s>/Usi","[s]\\1[/s]",$str);
    $str = preg_replace("/<div style=\"text-align:center\"\><img src=\"(.*)\" border=\"0\" \/><\/div>/Usi","[img]\\1[/img]",$str);
    //$str = preg_replace("/\[img\](.*)\[\/img\]/Usi","<div style=\"text-align:center\"><img src=\"\\1\" border=\"0\" /></div>",$str);
    $str = str_replace("[url=","[url=http://",$str) ;
    //$str = str_replace("[url=http://","[url=",$str) ;
    $str = preg_replace("/<a target=\"blank\" href=\"http:\/\/(.*)\">(.*)<\/a>/Usi","[url=\\1]\\2[/url]",$str);
    //$str = preg_replace("/\[url=(.*)\](.+)\[\/url\]/Usi","<a target=\"blank\" href=\"http://\\1\">\\2</a>",$str);
    $str = str_replace("[yt=http://www.youtube.com/embed/","[yt=http://youtu.be/",$str) ;
    //$str = str_replace("[yt=http://youtu.be/","[yt=http://www.youtube.com/embed/",$str) ;
    $str = preg_replace("/<div style=\"text-align:center\"><iframe  width=\"560\" height=\"345\" src=\"(.*)\" frameborder=\"0\" allowfullscreen><\/iframe><\/div>/Usi","[yt=\\1][/yt]",$str);
    //$str = preg_replace("/\[yt=(.*)\]\[\/yt\]/Usi","<div style=\"text-align:center\"><iframe  width=\"560\" height=\"345\" src=\"\\1\" frameborder=\"0\" allowfullscreen></iframe></div>",$str);
    return $str;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху