Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » сокеты

Ответить
Настройки темы
сокеты

Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


вот скажите мне, как через протокол http 1.1 снять копию контента с удаленного web сервера, без дополнений и изменений считывая построчно функцией

fgets($f,1024);

если сервер не отдает content-lenght и использует кодирование Transfer-Encoding: chunked ??

вот вам и пример ответа этого форума:

Код: Выделить весь код
HTTP/1.1 200 OK
Date: Sun, 30 Jul 2006 00:03:36 GMT
Server: Apache/1.3.34 (Unix) mod_accounting/0.5 PHP/4.4.2
X-Powered-By: PHP/4.4.2
Set-Cookie: ***
Set-Cookie: ***
Set-Cookie: ***
Expires: 0
Cache-Control: private, post-check=0, pre-check=0, max-age=0
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: text/html; charset=Windows-1251

106b4
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" lang="ru">
<head>
	<!-- no cache headers -->
	<meta http-equiv="Pragma" content="no-cache" />

</script>
</body>
</html>
0
как видно выше, появляются символы 0 и 106b4, если запрашивать у меилру, будут соответственно другие символы, я пытаюсь понять как принимать контент без этих символов, они я так понимаю несут какуето служебную информацию

ведь браузер и прокси както избавляются от этих символов перед выдачей на экран, но как??((

сам скрипт запроса ниже, возможно его надо дополнить для решения этой задачи, но чем??

PHP код: Выделить весь код

$f=fsockopen("forum.oszone.ru","80",80);

fputs($f,"GET http://forum.oszone.ru HTTP/1.1\r\nHost: forum.oszone.ru\r\n\r\n");
while(!
feof($f))
{
    
$tmp=fgets($f,1024);
    
$content    .=    $tmp;
}
fclose($f);

echo 
$content

-------
Основы HTML | Конференции


Отправлено: 04:25, 30-07-2006

 

Аватара для archy

Ветеран


Сообщения: 659
Благодарности: 3

Профиль | Отправить PM | Цитировать


Возможно следует обратить внимание на RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1
Код: Выделить весь код
       Chunked-Body   = *chunk
                        last-chunk
                        trailer
                        CRLF

       chunk          = chunk-size [ chunk-extension ] CRLF
                        chunk-data CRLF
       chunk-size     = 1*HEX
       last-chunk     = 1*("0") [ chunk-extension ] CRLF

       chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
       chunk-ext-name = token
       chunk-ext-val  = token | quoted-string
       chunk-data     = chunk-size(OCTET)
       trailer        = *(entity-header CRLF)
Судя по этому куску vadimiron прав

Отправлено: 15:22, 09-08-2006 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


archy уже обратили внимание, работающий пример по алгоритму, есть те у кого получится или получился?

интересно на php perl или #asp

-------
Основы HTML | Конференции


Отправлено: 14:36, 12-08-2006 | #12



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » сокеты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Выбор кулера под AMD сокеты alarm zone 13 Разгон, охлаждение и моддинг 2 09-10-2009 21:02
Не работают сокеты в PHP Coutty Вебмастеру 2 11-01-2008 17:20
Проблема при пересылке текста через сокеты из win в nix. lytdybr Программирование в *nix 8 07-11-2007 23:42
Сокеты на Си во FreeBSD Zloixxx Программирование в *nix 3 15-06-2007 19:29
*Теория* | Сокеты XPurple Программирование и базы данных 1 25-09-2006 12:05




 
Переход