Вход Регистрация
Файл: 3020.ru/file_3020/_system/_function/Banbase.php
Строк: 71
<?php
//ID аккаунта на banbase.ru
define('BANBASE_ID'70);
//ID сайта, добавленного в banbase.ru
define('BANBASE_SITE'8);
//API KEY от banbase.ru
define('BANBASE_API_KEY''API ключ');
//Сервер базы
define('BANBASE_SERVER''http://banbase.ru/api');

class 
Banbase {

    
//Поиск по строке
    
static function search($str) {
        
$str urlencode($str);
        
$page = (int) $page;
        
$content self::http(BANBASE_SERVER '/' $str '?serialize');
        
$arr unserialize($content);
        return 
$arr;
    }

    
//Поиск по параметрам
    
static function search_arr($search_arr) {
        
$str '';
        foreach (
$search_arr AS $key => $val) {
            
$str.= '&' $key '=' urlencode($val);
        }
        
$content self::http(BANBASE_SERVER '/search?serialize&user=' BANBASE_ID $str);
        
$arr unserialize($content);
        return 
$arr;
    }

    
//Добавление записи в базу
    //Необходим curl, и аккаунт на сервере базы
    //info_arr
    //wnid, icq, email, skype, url, descr, name
    
static function add($info_arr) {
        
$info_arr['id'] = BANBASE_ID;
        
$info_arr['api_key'] = BANBASE_API_KEY;
        
$info_arr['site'] = BANBASE_SITE;
        
$content self::http(BANBASE_SERVER '/add/?serialize', Array(), $info_arr);
        
$arr unserialize($content);
        return 
$arr;
    }

    
//Запрос по http
    
static function http($url$headers = Array(), $post_array = Array()) {
        if (!
function_exists('curl_init')) {
            return 
file_get_contents($url);
        }

        
$head = Array();
        if (
is_array($headers)) {
            foreach (
$headers AS $key => $val) {
                
$head[] = $key ': ' $val;
            }
        }

        
$post '';
        if (
$post_array) {
            
$c count($post_array);
            
$i 0;
            foreach (
$post_array AS $key => $val) {
                
$i++;
                
$post.= $key '=' $val;
                if (
$i <> $c) {
                    
$post .= '&';
                }
            }
        }

        
$ch curl_init();
        
curl_setopt($chCURLOPT_PROGRESSFUNCTION'curl_pb_callback');      //Функция для ограничения трафика по размеру
        
curl_setopt($chCURLOPT_NOPROGRESSfalse);

        if (
$post) {
            
curl_setopt($chCURLOPT_POSTtrue);
            
curl_setopt($chCURLOPT_POSTFIELDS$post);
        }

        
curl_setopt($chCURLOPT_URL$url);
        
curl_setopt($chCURLOPT_USERAGENT'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)');

        if (
$head) {
            
curl_setopt($chCURLOPT_HTTPHEADER$head);  //Заголовки
        
}

//curl_setopt($ch, CURLOPT_HEADER,         true);         // для включения заголовков в вывод.
        //curl_setopt($ch, CURLOPT_NOBODY,         true);         // для исключения тела ответа из вывода. Метод запроса устанавливается в HEAD. 
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
curl_setopt($chCURLOPT_CONNECTTIMEOUT5);           //Количество секунд ожидания при попытке соединения    
        
curl_setopt($chCURLOPT_TIMEOUT5);           //Максимально позволенное количество секунд для выполнения cURL-функций.
        //curl_setopt($ch, CURLINFO_HEADER_OUT,        true);

        
$result curl_exec($ch);

        
//print_r(curl_getinfo ($ch ,CURLINFO_HEADER_OUT));
        //Возвращаем false, устанавливаем сообщение об ошибке----
        
$err curl_error($ch);
        if (
$err) {
            
$result = Array();
            
$result['error'] = $err;
            return 
serialize($result);
        }
        
//-------------------------------------------------------

        
curl_close($ch);

        return 
$result;
    }

}

//call back функция для curl, ограничивает размер скачиваемого файла
function curl_pb_callback($download_size$downloaded$upload_size$uploaded) {
    global 
$ch;
    static 
$summ;
    if (!isset(
$summ)) {
        
$summ 0;
    }
    
$summ+=$downloaded;
    if (
$summ 500 1024) {
        throw new 
Exception('Too long content');
    }
    return 
false;
}

//----------------------------------------------------------------
?>
Онлайн: 1
Реклама