Вход Регистрация
Файл: sys/fnc/links.php
Строк: 79
<?php

function img_preg($arr) {
    if (
function_exists('set_time_limit')) {
        @
set_time_limit(60);
    }

    
$ext substr($arr[1], -3);
    
$myhost md5($arr[1]) . '.' $ext;
    
$nonpic "/style/icons/img_null.png";
    
$ext_valid = array('jpg''jpeg''png''gif');

    if (
is_file('sys/cache/images/' $myhost)) {
        return 
'<a href="http://' $_SERVER['HTTP_HOST'] . '/linkGo?go=' base64_encode(html_entity_decode($arr[1])) . '">   
        <img src="/sys/cache/images/' 
$myhost '" alt="' $_SERVER['HTTP_HOST'] . '-image" />
        </a>'
;
    } elseif (
in_array($ext$ext_valid) && getDomain('http://' $_SERVER['HTTP_HOST']) !== getDomain($arr[1])) {
        
$ext substr($arr[1], -3);
        
$myhost md5($arr[1]) . '.' $ext;
        
$locale 'sys/tmp/' $myhost;
        
$ch curl_init();
        
curl_setopt($chCURLOPT_URL$arr[1]);
        
$fp fopen($locale"w+");
        
curl_setopt($chCURLOPT_FILE$fp);
        
curl_setopt($chCURLOPT_REFERER$arr[1]);
        
curl_setopt($chCURLOPT_AUTOREFERER1);
        
curl_exec($ch);
        if (
curl_getinfo($chCURLINFO_HTTP_CODE) != 200) {
            
unlink($locale); // удаляем ненужный файл
            // делаем что-то ещё (пишем адрес в лог, выводим ошибку, etc...)
        
}
        
curl_close($ch);
        
fclose($fp);

        require_once 
"sys/classes/ImgType.class.php";
        if (
is_file('sys/tmp/' $myhost) && filesize('sys/tmp/' $myhost) !== 0) {
            
$image = new ImgType();
            
$image->load('sys/tmp/' $myhost);
            
$image->resizeToWidth(128);
            
$image->save('sys/cache/images/' $myhost);
        }
        return 
'
        <a href="http://' 
$_SERVER['HTTP_HOST'] . '/linkGo?go=' base64_encode(html_entity_decode($arr[1])) . '">
          <img src="/sys/cache/images/' 
$myhost '" alt="' $_SERVER['HTTP_HOST'] . '-image" />
        </a>'
;
    } else
        return 
'<img src="' $nonpic '" width="128" height="128" />';
}

function 
getDomain($domain) {
    
preg_match('~^(?:http://)?([^/]+)~i'$domain$matches);
    
$host = isset($matches[1]) ? $matches[1] : false;
    
preg_match('/[^.]+.[^.]+$/'$host$matches);
    return isset(
$matches[0]) ? $matches[0] : false;
}

function 
links_preg1($arr) {
    global 
$set;

    
#-----------------------------------------------------#
    
$arr[1] = str_replace(PHP_EOL''$arr[1]);
    if (
preg_match('~^ *(javascript|data)~i'$arr[1]))
        return 
'#error JavaScript';
    
#-----------------------------------------------------#

    
$LinkRe str_replace(array('http://''www.''https://'), null$arr[2]);

    if (
preg_match('#^http://' preg_quote($_SERVER['HTTP_HOST']) . '#'$arr[1]) || !preg_match('#://#'$arr[1])) {
        return 
'<a class="link_bb_2" href="' $arr[1] . '">' $LinkRe '</a>';
    } else {
        return 
'<a' . ($set['web'] ? ' target="_blank"' null) . ' class="link_bb" href="http://' $_SERVER['HTTP_HOST'] . '/linkGo?go=' base64_encode(html_entity_decode($arr[1])) . '">' $LinkRe '</a>';
    }
}

function 
links_preg2($arr) {
    global 
$set;
    
//не увеерн что это тут нужно 
    #-----------------------------------------------------#
    
$arr[1] = str_replace(PHP_EOL''$arr[1]);
    if (
preg_match('~^ *(javascript|data)~i'$arr[1])) {
        return 
'#error JavaScript';
    }
    
#-----------------------------------------------------#

    
$LinkRe str_replace(array('http://''www.''https://'), null"Ссылка");

    if (
preg_match('#^http://' preg_quote($_SERVER['HTTP_HOST']) . '#'$arr[2])) {
        return 
$arr[1] . '<a class="link_bb_2" href="' $arr[2] . '">' $LinkRe '</a>' $arr[4];
    } else {
        return 
$arr[1] . '<a' . ($set['web'] ? ' target="_blank"' null) . ' class="link_bb" href="http://' $_SERVER['HTTP_HOST'] . '/linkGo?go=' base64_encode(html_entity_decode($arr[2])) . '">' $LinkRe '</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;
}
Онлайн: 0
Реклама