Добрый день. При использовании функции, взятой из FAQ :
| Код | function http_get($host, $path, $port = "80") { $content = ''; if ($socket = fsockopen($host, $port)) { fputs($socket, "GET $path HTTP/1.1\r\nHost: $host\r\nConnection: close;\r\n\r\n"); if (preg_match("/^HTTP\/1\.1 (\d+) /", fgets($socket), $error)) { while (!feof($socket)) { if (!preg_match("/^(.+?):\s*(.*)$/", fgets($socket), $array)) break; $header[strtolower($array[1])] = rtrim($array[2]); } if (isset($header['content-length'])) for ($i = 0; $i < $header['content-length']; $i++) $content .= fgetc($socket); else while (!feof($socket)) $content .= fgetc($socket); } fclose($socket); } if (isset($header['transfer-encoding']) && $header['transfer-encoding'] == 'chunked') $content = decode_chunk($content); if (isset($header['content-encoding']) && $header['content-encoding'] == 'gzip') $content = gzinflate(substr($content, 10)); if ($error[1] == '302' && isset($header['location'])) { $url = parse_url($header['location']); return http_get($url['host'], $url['path'].($url['query'] ? "?".$url['query'] : ""), $url['port'] ? $url['port'] : 80); } return $content; }
|
Появляеться ошибка, мол функция decode_chunk() не существут. Нашел на php.net похожую функцию http_chunked_decode(), но опять таже ошибка. Кто-нибудь, подскажите пожалуйста, как заставить функцию http_get() работать нормально! |