Вход Регистрация
Файл: backlink.php
Строк: 77
<?

class backlink
{
    var 
$errors '';
    var 
$backlink '';
    var 
$backlink_parse = array();
    var 
$backlink_path '';
    var 
$backlink_path_ar = array();

    function 
backlink($backlink)
    {
        
$this->backlink                $backlink;
        
$this->backlink_parse    parse_url($backlink);

        
$this->backlink_path    $this->backlink_parse['path'];
        if ( 
substr($this->backlink_path,0,1)=='/' )    $this->backlink_path substr($this->backlink_path,1);
        if ( 
substr($this->backlink_path,-1)=='/' )        $this->backlink_path substr($this->backlink_path,0,strlen($this->backlink_path)-1);

        
$backlink_path_ar            split("[/]",$this->backlink_path);
        if ( 
count($backlink_path_ar)>)
        {
            foreach ( 
$backlink_path_ar as $k=>$v )
            {
                
$v trim($v);
                if ( empty(
$v) ) unset($backlink_path_ar[$k]);
            }
        }
        if ( 
count($backlink_path_ar)>$this->backlink_path_ar $backlink_path_ar;
    }

    function 
subpath_check($rule)
    {
        if ( 
count($this->backlink_path_ar)>)
        {
            
$path '';
            foreach ( 
$this->backlink_path_ar as $k=>$v )
            {
                
$path.= empty($path) ? $v "/".$v;
                if ( 
preg_match('/Disallow:s*[/]?'.$path.'[/*]?s*$/i',$rule) ) return true;
            }
        }
        return 
false;
    }

    function 
check($url)
    {
        
$parse_url            parse_url($url);

        
/* robotos.txt */

        
$robots_url            'http://'.$this->backlink_parse['host'].'/robots.txt';
        
$robots_data_ar    = @file($robots_url);

        if ( 
$robots_data_ar!==false )
        {
            if ( 
count($robots_data_ar)>)
            {
                foreach ( 
$robots_data_ar as $k=>$v )
                {
                    
$v trim($v);
                    if ( !empty(
$v) )
                    {
                        if ( 
preg_match('/Disallow:s*/s*$/i',$v) ) // запрет индексации всего сайта
                        
{
                            
$this->errors 'В '.$robots_url.' есть правило запрещающее индексировать сайт.';
                            return 
false;
                        }
                        if (
                            
preg_match('/Disallow:s*[/]?'.str_replace("/","/",$this->backlink_path).'[/$]s*$/i',$v) || // запрет индексации страницы с ссылкой
                            
$this->subpath_check($v// запрет индексации пути к странице с ссылкой
                        
) {
                            
$this->errors 'В '.$robots_url.' есть правило запрещающее индексировать страницу '.$this->backlink;
                            return 
false;
                        }
                    }
                }
            }
        }

        
/* META */

        
$meta = @get_meta_tags($this->backlink);
        if (
            
eregi('noindex',$meta['robots']) ||
            
eregi('nofollow',$meta['robots'])
        ) {
            
$this->errors 'На странице '.$this->backlink.' есть META данные запрещающие её индексацию.';
            return 
false;
        }

        
/* Link */

        
$data '';
        
$fp = @fopen($this->backlink,"r");
        if ( 
$fp )
        {
            while (!
feof($fp)) $data.= fgets ($fp,4096);
            
fclose ($fp);

            
$pattern = array (
                
"'<script[^>]*?>.*?</script>'si"// Вырезается javascript
                
"'<noscript[^>]*?>.*?</noscript>'si"// noscript
                
"'<noindex[^>]*?>.*?</noindex>'si"// noindex
                
"'<a[^>]*?rel=["']nofollow["'].*?>'si", //nofollow
                "'<!--.*?-->'si", // remarka
            );
            $replace = array(" "," "," "," "," ");
            $data = preg_replace($pattern, $replace, $data);

            if ( preg_match_all('/<a.*?href=["']http://(.*?)["']/i', $data, $m) ) {
                if ( count($m[1])>0 )
                {
                    foreach ( $m[1] as $k=>$v ) if ( eregi($parse_url['host'],$v) ) return true;
                }
            }

            $this->errors = 'На странице: <b> '.$this->backlink.'</b> не найдена ваша реф. ссылка: (<b>'.$url.'</b>)
             или ваш сайт не доступен к индексации!<br>
            <a href="cat.php'.$_zapros.'">В каталог</a>';
    }
        else $this->errors = 'Не удаётся открыть страницу: '.$this->backlink;
echo '<a href="cat.php'.$_zapros.'">В каталог</a><br/>';

        return false;
    }
}
?>
Онлайн: 1
Реклама