ПОЛЕЗНЫЕ РЕШЕНИЯ НА PHP

Статус
В этой теме нельзя размещать новые ответы.
DeD будь добр перезалей файл плиз...или а рапиду выложить.. а то стока полезных решений это заманчиво :) (тока недавно плакался что тему не развивают а тут на тебеи развили :) )
 
да, перезалей плиз
 
Удобный бб-парсер на регулярных выражениях, быстро и надёжно :).
PHP:
function parse_BBcode($string) {
        // элементы, для которых возможны вложения
        $RecurArrayBBcode=array(
             '/\[i\](.+?)\[\/i\]/s'                 	          =>'<i>\\1</i>',
             '/\[u\](.+?)\[\/u\]/s'                               =>'<u>\\1</u>',
             '/\[b\](.+?)\[\/b\]/s'                               =>'<b>\\1</b>',
             '/\s?\[quote=(.*?)\](.+?)\[\/quote\]\s?/s'           =>'<div id="quote"><div id="autor">\\1:</div>\\2</div>',
             '/\s?\[code\](.+)\[\/code\]\s?/s'                    =>'<div id="code">\\1</div>',
             '/\[color=(#[0-9A-F]{6}|[a-z\-]+)\](.+)\[\/color\]/s'=>'<span style="color:\\1">\\2</span>',
          );

          foreach($RecurArrayBBcode as $search => $replace){
             do {
                   if($num = preg_match($search, $string)){
                       $string = preg_replace($search,$replace,$string);
                    }
             } while ( $num != 0 );
          }

        // элементы, для которых вложения не нужны
        $FastArrayBBcode = array(
            "/\r?\n/s"            => "<br>\n",
            '/[\t]|[ ]{2}/s'   => ' &nbsp;',
            '/\[url=([\w]+?:\/\/[^ \"\n\r\t<]*)\]([\w].*?)\[\/url\]/s' => '<a href="\\1" target="_blank">\\2</a>'
        );
        $string = preg_replace(array_keys($FastArrayBBcode), array_values($FastArrayBBcode), $string);

         return $string;
    }
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху