Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция decode_chunk() 
V
    Опции темы
CrayNot
Дата 3.4.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Добрый день. 
При использовании функции, взятой из 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() работать нормально!
PM MAIL   Вверх
mishaSL
Дата 3.4.2007, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



CrayNot, для получения удаленного файла предлагаю использовать curl, к примеру эту функцию:
http://forum.vingrad.ru/topic-137078/ancho...y1037944/0.html


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
CrayNot
Дата 3.4.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Не получается подключить php_curl.dll, при раскоментировании в php.ini и перезагрузке, сервер зависает.
PM MAIL   Вверх
mishaSL
Дата 3.4.2007, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Цитата(CrayNot @  3.4.2007,  16:45 Найти цитируемый пост)
Не получается подключить php_curl.dll, при раскоментировании в php.ini и перезагрузке, сервер зависает. 


Вы наверное забыли это:
Код

Замечание для пользователей Win32:  Для работы с этим модулем в Windows необходимо скопировать файлы libeay32.dll и ssleay32.dll  из директории DLL Win32 дистрибутива PHP в директорию SYSTEM (Нпример C:\WINNT\SYSTEM32  или C:\WINDOWS\SYSTEM)



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
CrayNot
Дата 3.4.2007, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Цитата(mishaSL @ 3.4.2007,  17:18)
Вы наверное забыли это:
Код

Замечание для пользователей Win32:  Для работы с этим модулем в Windows необходимо скопировать файлы libeay32.dll и ssleay32.dll  из директории DLL Win32 дистрибутива PHP в директорию SYSTEM (Нпример C:\WINNT\SYSTEM32  или C:\WINDOWS\SYSTEM)

Действительно! Но при копировании данных DLL'ок ничего не изменилось!
PM MAIL   Вверх
mishaSL
Дата 4.4.2007, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Код

C:\WINNT\SYSTEM32  или C:\WINDOWS\SYSTEM

А куда вы их скопировали? Какая у вас ОС? Вы сервер перезапускали? И какой у вас сервер?


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
CrayNot
Дата 4.4.2007, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



У меня Windows XP, дллки скопировал в  C:\WINDOWS\SYSTEM
(и в C:\WINDOWS\SYSTEM32 на всякий случай). 
Сервер Apache (денвер). 
PM MAIL   Вверх
mishaSL
Дата 4.4.2007, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



CrayNot, попробуйте добавить папку с PHP  в ваш системный PATH (ссылка)

Цитата(CrayNot @  4.4.2007,  09:55 Найти цитируемый пост)
Сервер Apache (денвер).  

Плохо.



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
CrayNot
Дата 4.4.2007, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Цитата(mishaSL @ 4.4.2007,  10:01)
CrayNot, попробуйте добавить папку с PHP  в ваш системный PATH (ссылка)

Цитата(CrayNot @  4.4.2007,  09:55 Найти цитируемый пост)
Сервер Apache (денвер).  

Плохо.

А что плохого? Это лечиться?
PM MAIL   Вверх
CrayNot
Дата 4.4.2007, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Добавил, не помогло  smile 
PM MAIL   Вверх
mishaSL
Дата 4.4.2007, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Цитата(CrayNot @  4.4.2007,  10:26 Найти цитируемый пост)
Это лечиться? 

Да. Установите отдельно Apache, PHP, MySQL и все будет работать как часы. smile 

Вы точно сервер перезапускали?



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
CrayNot
Дата 4.4.2007, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Цитата(mishaSL @ 4.4.2007,  11:08)
Цитата(CrayNot @  4.4.2007,  10:26 Найти цитируемый пост)
Это лечиться? 

Да. Установите отдельно Apache, PHP, MySQL и все будет работать как часы. smile 

Вы точно сервер перезапускали?

Да, сервер точно перезапускал.
Дално, попробую установить все отдельно.
PM MAIL   Вверх
CrayNot
Дата 5.4.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Поставил, таже фигня. Может все таки как-то можно это и без курла сделать?


PM MAIL   Вверх
CyClon
Дата 5.4.2007, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



В денвере DDL-ки нужно кидать не в sys & sys32 а его папку... Папка вообще в конфигах настраивается.


--------------------
user posted image
PM   Вверх
CrayNot
Дата 5.4.2007, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Повторю вопрос : может все таки можно обойтись без curl ?
PM MAIL   Вверх
mishaSL
Дата 12.4.2007, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Цитата(CrayNot @  5.4.2007,  15:55 Найти цитируемый пост)
может все таки можно обойтись без curl ? 

Для вас все что угодно:
Код

<?php

function getUrlContents($url)
{
   $url_parsed = parse_url($url);
   $host = $url_parsed["host"];
   if ($url == '' || $host == '') {
       return false;
   }
   $port = ($url_parsed["port"] == 0 ? 80 : $url_parsed["port"]);
   $path = (empty($url_parsed["path"]) ? '/' : $url_parsed["path"]);
   $path.= (!empty($url_parsed["query"]) ? '?'.$url_parsed["query"] : '');

   $out = "GET $path HTTP/1.0\r\nHost: $host\r\nConnection: Close\r\n\r\n";
   $fp = fsockopen($host, $port, $errno, $errstr, 30);
   fwrite($fp, $out);
   $headers = '';
   $content = '';
   $buf = '';
   $isBody = false;
   while (!feof($fp)) {
        $buf = fgets($fp, 1024);
        if ($isBody) {
            $content .= $buf;
        } else {
            $headers .= $buf;
        }
        if ($buf == "\r\n" ) {
            $isBody = true;
        }
   }
   fclose($fp);
   return array('headers'=>$headers,'body'=>$content);
}

$s = getUrlContents('http://ru2.php.net/manual-lookup.php?pattern=fsock');
print '<h3>Заголовки:</h3><textarea rows="10" cols="50">'.$s['headers'].'</textarea>';
print '<h3>Тело:</h3><textarea rows="50" cols="50">'.$s['body'].'</textarea>';

?>


Если что непонятно в реализации спрашивай, написал не тестировал, так что лучше проверь перед использованием smile 


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
CrayNot
Дата 14.4.2007, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Все работает! Спасибо большое!
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0726 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.