Hello, SW. users! I am trying to get information about the mp3 file on the server vk.com, but in response it gives an HTTP / 1.1 404 Not Found error
Code:
<?php $file_url = 'http://cs4883.userapi.com/u92342187/audios/15012c2aac27.mp3'; $info = get_headers($file_url,1); print_r($info);
Has anyone come across?
PS does not work with a working link to the file.
Returns:
Array ( [0] => HTTP/1.1 404 Not Found [Server] => nginx/1.2.1 [Date] => Thu, 08 Nov 2012 21:30:33 GMT [Content-Type] => text/html [Content-Length] => 403 [Connection] => close )
It works fine on denver ..
SOLVED. As requested:
<?php /** * ΠΠ»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ VK API * ΠΠ»Π°ΡΡ Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½Π΅Π½. ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΠΈ ΡΡΡΠ»ΠΊΠ° Π½Π° Π°Π²ΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ°: * http://a-panov.ru/2011/10/%D0%BA%D0%BB%D0%B0%D1%81%D1%81-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-vkontakte-api-php/ */ class vk { public static $error = ''; /** * ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
* * @param $method string ΠΈΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π° api * @param $method array Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ api * @return array ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΈΠ»ΠΈ FALSE ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅ */ static function get($account = array(), $method, $params = array()) { if (empty($method)) { self::$error = 'ΠΠ΅ Π·Π°Π΄Π°Π½ ΠΌΠ΅ΡΠΎΠ΄'; return FALSE; } else { // ΠΎΠ±Π½ΡΠ»ΠΈΡΡ ΡΡΠ°ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ self::$error = ''; } $params['api_id'] = $account['id_api']; $params['method'] = $method; // Π²Π΅ΡΡΠΈΡ API if (empty($params['v'])) $params['v'] = '2.0'; // ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ ΠΊΠ»ΡΡΠΈ ΠΏΠΎ Π°Π»ΡΠ°Π²ΠΈΡΡ ksort($params); // ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΠΈΠ΄Π° key=value $datas = array(); $strdatas = $account['user_id']; foreach ($params as $k => $v) { $strdatas .= $k . '=' . $v; $datas[] = $k . '=' . urlencode($v); } // ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ $sig = md5($strdatas . $account['key']); // ΠΏΠΎΠ»Π½Π°Ρ ΡΡΡΠΎΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ° ΠΊ API $url = 'http://api.vk.com/api.php' . '?' . implode('&', $datas) . '&sig=' . $sig; // ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ $result = file_get_contents($url); if ($result) { // ΡΠ΄Π°Π»ΠΈΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ $result = preg_replace('![\\x00-\\x1f]!', '', $result); // ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ json-ΡΡΡΠΎΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ² $arr = new SimpleXMLElement($result); // ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΎΡΠΈΠ±ΠΊΠ° if (isset($arr['error'])) { // Π·Π°ΠΏΠΈΡΠ°ΡΡ Π΅Ρ ΡΠ΅ΠΊΡΡ self::$error = 'ΠΡΠΈΠ±ΠΊΠ°: ' . $arr['error']['error_msg'] . ' (' . $arr['error']['error_code'] . ')'; $arr = FALSE; } } else { $arr = FALSE; self::$error = 'ΠΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π°Π΄ΡΠ΅ΡΡ ' . 'http://api.vk.com/api.php'; } return $arr; } } /** * ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ */ $key_app = 'kjlsdhglsdhg'; // ΠΠ»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ $user_id = 778787878; // ΠΠ΄ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ $api_id = 454545454545; // ID ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ $method = 'audio.getById'; // ΠΌΠ΅ΡΠΎΠ΄ /** * ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ */ $params = array(); $params['audios'] = '41589363_104634384'; $params['test_mode'] = 1; $mp3 = vk::get(array( 'key' => $key_app, 'user_id' => $user_id, 'id_api' => $api_id), $method, $params); if (FALSE === $mp3) { exit ('Error'); } else { /** * ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»Π° */ $get = get_headers($mp3->audio->url, 1); print_r($get); }