Код: Выделить всё
<?php class vkapi { /** * @var $api_secret - Секретный код приложения */ private $api_secret; /** * @var $user_id - ID риложения */ private $app_id; /** * @var ID пользователя */ private $user_id; /** * @var $api_url - Адрес API */ private $api_url = 'http://api.vk.com/api.php'; /** * @var $format - Формат возращаемых данных */ private $format; /** * @var mixed $test_mode - Тестовый режим приложения */ private $test_mode = false; /** * Конструктор класса * @param int$user_id * @param int $app_id * @param string $api_secret * @param bool $test_mode * @param string $format */ public function __construct($user_id, $app_id, $api_secret, $test_mode = 1, $format = '') { $this->user_id = $user_id; $this->app_id = $app_id; $this->api_secret = $api_secret; $this->format = ($format == 'json' && function_exists('json_decode')) ? 'json' : 'xml'; if($test_mode) $this->test_mode = 1; } /** * Запрос к vkontakte api * @param string $method - Метод * @param array $params - Параметры запроса * @return object */ public function query( $method, $params = false ) { if (!$params) $params = array(); $params['api_id'] = $this->app_id; $params['v'] = '2.0'; $params['method'] = $method; $params['timestamp'] = time(); $params['format'] = $this->format; $params['random'] = rand(0,10000); $params['test_mode'] = $this->test_mode; ksort($params); $sig = $this->user_id; foreach($params as $k=>$v) { $sig .= $k.'='.$v; } $sig .= $this->api_secret; $params['sig'] = md5($sig); return $this->request( $this->api_url.'?'.$this->params($params) ); } /** * Строка параметров запроса * @param array $params - Параметры * @return string */ private function params($params) { $pice = array(); foreach($params as $k=>$v) { $pice[] = $k.'='.urlencode($v); } return implode('&', $pice); } /** * Выполнение запроса * @param string $query - Запрос * @return object */ private function request($query) { if(function_exists('curl_init')) { $ch = curl_init($query); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch); curl_close($ch); } else $res = file_get_contents($query); return $this->process($res); } /** * Возрврат данных * @param string $result - Результат выполнения запроса * @return object */ private function process($result){ return $this->format == 'json' ? json_decode($result) : simplexml_load_string($result); }}?>
Код: Выделить всё
<?require_once( 'class.php' );$id=''; // ид пользователя у кого установлено приложение$idf=''; // ид приложения$key=''; // ключ приложения$api = new vkapi( $id ,$idf, $key,true, 'json'); # Проверяем передана ли строка поиска$query = isset($_GET['query']) ? trim($_GET['query']) : null;# Выводим форму поискаecho '<form action="?" method="get"><input type="text" name="query" value="'. htmlspecialchars($query) .'" /><input type="submit" name="" value="Искать" /></form>'; # Для постраничной навигации, смещение относительно первом аудиозаписи$start = isset($_GET['start']) ? abs( intval( $_GET['start'] ) ) : 0; if(!empty($query)){ $res = $api->query('audio.search', array('q' => $query,'lyrics' => 1, 'count' => 10, 'offset' => $start)); print_r($res);}?
получаю треки:
Код: Выделить всё
stdClass Object( [response] => Array ( [0] => 1334 [1] => stdClass Object ( [aid] => 83846784 [owner_id] => 16243474 [artist] => Fozzy [title] => The test [duration] => 186 [url] => http://cs5067.vkontakte.ru/u55310896/audio/8cb540644659.mp3 [lyrics_id] => 5314907 ) [2] => stdClass Object ( [aid] => 91600740 [owner_id] => 100939120 [artist] => Dash [title] => Test of the Man [duration] => 322 [url] => http://cs4594.vkontakte.ru/u57709196/audio/6f1c0068f938.mp3 [lyrics_id] => 6915366 ) // и т.д
в чем проблема?