Файл: install/inc/fnc.php
Строк: 173
<?
// функция обрабатывает текстовые строки перед выводом в браузер
    // настоятельно не рекомундуется тут что-либо менять
    function output_text($str,$br=1,$html=1,$smiles=1,$links=1,$bbcode=1)
    {
        global $theme_ini;
        // преобразуем все к нормальному перевариванию браузером
        if ($html)$str=htmlentities($str, ENT_QUOTES, 'UTF-8'); 
        
        // обработка ссылок
        if ($links)$str = links($str); 
        // обработка bbcode
        if ($bbcode)
        {
            $tmp_str = $str;
            $str = bbcode($str);
        }
        // переносы строк
        if ($br) $str=br($str); 
        
    // возвращаем обработанную строку
    return stripslashes($str); 
    }
    
    function links_preg1($arr)
    {
        global $set;
        if (preg_match('#^http://'.preg_quote($_SERVER['HTTP_HOST']).'#',$arr[1]) || !preg_match('#://#',$arr[1]))
        return '<a href="'.$arr[1].'">'.$arr[2].'</a>';
        else
        return '<a'.($set['web']?' target="_blank"':null).' href="http://'.$_SERVER['HTTP_HOST'].'/linkGo?go='.base64_encode(html_entity_decode($arr[1])).'">'.$arr[2].'</a>';
    }
    
    function links_preg2($arr)
    {
    global $set;
        if (preg_match('#^http://'.preg_quote($_SERVER['HTTP_HOST']).'#',$arr[2]))
            return $arr[1].'<a href="'.$arr[2].'">'.$arr[2].'</a>'.$arr[4];
        else
            return $arr[1].'<a'.($set['web']?' target="_blank"':null).' href="http://'.$_SERVER['HTTP_HOST'].'/linkGo?go='.base64_encode(html_entity_decode($arr[2])).'">'.$arr[2].'</a>'.$arr[4];
    }
    
    function links($msg)
    {
    global $set;
        if ($set['bb_img'])$msg=preg_replace_callback('/[img](.+)[/img]/isU', 'img_preg', $msg);
        if ($set['bb_url'])$msg=preg_replace_callback('/[url=(.+)](.+)[/url]/isU', 'links_preg1', $msg); 
        if ($set['bb_http'])$msg=preg_replace_callback('~(^|s)([a-z]+://([^ rnt`'"]+))(s|$)~iu', 'links_preg2', $msg);
        return $msg;
    }
    
function dir_clear($path,$conf = 1){ 
    if ($handle = opendir($path)) 
    {
        while (false !== ($file = readdir($handle))) 
        { 
            if ($file != '.' && 
            $file != '..' && 
            $file != '.htaccess' && 
            $file != 'clear_conf.txt'  &&
            $file != '0.png' && 
            $file != 'guest.png') 
            { 
                @unlink($path.'/'.$file);
            } 
        }
    
    if ($conf == 1)
    {
        $text = 'Последняя зачистка папки была ['.date("F j, Y, H:i:s") .']';    
        $files=fopen($path.'clear_conf.txt','w'); 
        fwrite($files,$text); 
        fclose($files) ;
        closedir($handle); 
    }
    
    }
}
      function mail_send($user = 0,$user_id = 0,$msg = null)
    {
        query("INSERT INTO `mail` (`id_user`, `id_kont`, `msg`, `time`) values
        ('". $user ."', '". $user_id ."','".mysql_real_escape_string($msg)."','".time()."');");
    }
    //помните внутрености? вот вот
    function strlen2($str)
    {
        return mb_strlen($str, 'UTF-8');
    }
    # Подсветка кода 
    function bbcodehightlight($arr)
    {
        $arr[0] = html_entity_decode($arr[0], ENT_QUOTES, 'UTF-8');
        return '<div class="cit" style="overflow:scroll;clip:auto;max-width:480px;">'.
        preg_replace('#<code>(.*?)</code>#si', '\1' ,highlight_string($arr[0],1)).'</div>';
    }
    
    # ВВ коды 
    function bbcode($msg)
    {
        global $set,$user;
        
        $bbcode = array();
        
        $bbcode['/[url=(.+)](.+)[/url]/isU']='<a class="links_t" href="$1">$2</a>';
        //Куксив
        $bbcode['/[i](.+)[/i]/isU']='<em>$1</em>';
        
        //Жирный
        $bbcode['/[b](.+)[/b]/isU']='<strong>$1</strong>';
        
        //Подчеркнутый
        $bbcode['/[u](.+)[/u]/isU']='<span style="text-decoration:underline;">$1</span>';
        
        //большой
        $bbcode['/[big](.+)[/big]/isU']='<span style="font-size:large;">$1</span>';
        
        //малый
        $bbcode['/[small](.+)[/small]/isU']='<span style="font-size:small;">$1</span>';
        
        //цветной текст
        $bbcode['/[color=(.+)](.+)[/color]/isU']='<span style="color:$1;">$2</span>';
        
        //рег. размеры текста
        $bbcode['/[size=([0-9]+)](.+)[/size]/isU']='<span style="font-size:$1px;">$2</span>';
        
        //видео с ютуба
        $bbcode['/[youtube](.+)[/youtube]/isU']='<br /><center><iframe width="400" height="250" src="//www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe></center>';
        
        //видео 
        $bbcode['/[video](.+)[/video]/isU']="<center><object type=application/x-shockwave-flash data=/sys/js/video/v.swf width=550 height=400><param name=bgcolor value=#ffffff /><param name=allowFullScreen value=true /><param name=allowScriptAccess value=always /><param name=wmode value=transparent /><param name=movie value=/sys/js/video/v.swf/><param name=flashvars value=file=$1/></object></center>";
        
        //мп3 
        $bbcode['/[mp3](.+)[/mp3]/isU']='<center><object type="application/x-shockwave-flash" data="/sys/js/mp3/i.swf" width="200" height="20" id="dewplayer" name="dewplayer"><param name="movie" value="/sys/js/mp3/i.swf" /><param name="flashvars" value="mp3=$1" /><param name="wmode" value="transparent" /></object></center>';
                
        //админ текст    
        $bbcode['/[admin](.+)[/admin]/isU'] =     $user['group_access'] >= 1 ? 'Админ текст :<br/>  <span style="color:red">$1 </span> ':' <span style="color:red">Текст доступный только Администрации </span>';
        
        //если найдены 
        if (count($bbcode))
        $msg = preg_replace(array_keys($bbcode), array_values($bbcode), $msg);
        
        //Подсветка php кода
        if ($set['bb_code'] == 1)
        $msg = preg_replace_callback('#<?(.*?)?>#sui', 'bbcodehightlight', $msg);
    return $msg;
    }
function lang($text){return $text;}
function br($msg,$br='<br />'){return @eregi_replace("((<br( ?/?)>)|n|r)+",$br, $msg);} // переносы строк
function esc($text,$br=NULL){ // Вырезает все нечитаемые символы
if ($br!=NULL)
for ($i=0;$i<=31;$i++)$text=str_replace(chr($i), NULL, $text);
else{
for ($i=0;$i<10;$i++)$text=str_replace(chr($i), NULL, $text);
for ($i=11;$i<20;$i++)$text=str_replace(chr($i), NULL, $text);
for ($i=21;$i<=31;$i++)$text=str_replace(chr($i), NULL, $text);}
return $text;}
function msg($msg){echo "<div class='msg'>$msg</div>n";} // вывод сообщений
function passgen($k_simb=8, $types=3) {
$password="";
$small="abcdefghijklmnopqrstuvwxyz";
$large="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$numbers="1234567890";
mt_srand((double)microtime()*1000000); 
for ($i=0; $i<$k_simb; $i++) { 
$type=mt_rand(1,min($types,3));
switch ($type) {
case 3:
$password.=$large[mt_rand(0,25)];
break;
case 2:
$password.=$small[mt_rand(0,25)];
break;
case 1:
$password.=$numbers[mt_rand(0,9)];
break;
}
}
return $password;
}
$passgen=&passgen();
// сохранение настроек системы
function save_settings($set){
unset($set['web']);
if ($fopen=@fopen(H.'sys/dat/settings.conf', 'w')){
@fputs($fopen, serialize($set));
@fclose($fopen);
@chmod(H.'sys/dat/settings.conf', 0777);
return true;}
else
return false;}
// рекурсивное удаление папки
function delete_dir($dir){
if (is_dir($dir)){$od=opendir($dir);
while ($rd=readdir($od)){
if ($rd == '.' || $rd == '..') continue;
if (is_dir("$dir/$rd")){
@chmod("$dir/$rd", 0777);
delete_dir("$dir/$rd");}
else{
@chmod("$dir/$rd", 0777);
@unlink("$dir/$rd");}}
closedir($od);
@chmod("$dir", 0777);
return @rmdir("$dir");}
else{
@chmod("$dir", 0777);
@unlink("$dir");}}