Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Гродненский Форум
27 Апрель 2024, 21:55:36
Новости, реклама:
   Главная   Новости Гродно Помощь Игры Календарь Войти Регистрация   Меню
Гродненский Форум > Компьютеры > Программирование
(Модераторы: Админ, barmalei) > Тема:

какова х... не пашет функция???

Страниц  :   Вниз
  Печать  
Автор Тема: какова х... не пашет функция???  (Прочитано 1134 раз)
0 Пользователей и 1 Гость смотрят эту тему.
barmalei
Moderator
*****

Репутация: +49/-2
Offline Offline

Пол: Мужской
Сообщений: 505


Просмотр профиля WWW
« : 20 Февраль 2006, 03:30:50 »

function get($addr,$port,$url)
{
$fp=fsockopen($addr,$port,$errno,$errstr,100);
$send="GET $url HTTP/1.1\r\n";
reset($HL);
while(list($header,$value)=each($HL))
$send.="$header: $value\r\n";
$send.="\r\n";  
fputs($fp,$send);
$data='';
$status='';
while (!$status)
$status=fgets($fp,4096);
while(!feof($fp)) {
$s=fgets($fp,40000);
$data.=$s;
}
fclose($fp);
return $data;
}
Записан
X-Penguin
Настоящий гродненец
****

Репутация: +16/-0
Offline Offline

Сообщений: 469


Просмотр профиля
« Ответ #1 : 20 Февраль 2006, 13:12:53 »

<?php

$GLOBALS['HL'] = array('Host' => 'www.google.com', 'Connection' => 'Close');

function get($addr,$port,$url)
{
global $HL;
$fp=fsockopen($addr,$port,$errno,$errstr,100);
$send="GET $url HTTP/1.1\r\n";
reset($HL);
while(list($header,$value)=each($HL))  
$send.="$header: $value\r\n";
$send.="\r\n";  
fputs($fp,$send);
$data='';
$status='';
while(!feof($fp)) {
$s=fgets($fp,40000);  
$data.=$s;
}  
fclose($fp);
return $data;
}

var_dump(get('google.com', '80', '/'));

?>
Записан
barmalei
Moderator
*****

Репутация: +49/-2
Offline Offline

Пол: Мужской
Сообщений: 505


Просмотр профиля WWW
« Ответ #2 : 20 Февраль 2006, 16:49:58 »

и чё ты написал???
$addr адрес прокси
$port порт прокси
$url адрес ткуда запрашивать страницу
с каких пор у гугли на 80 порту прокся стоит? =)))
Записан
X-Penguin
Настоящий гродненец
****

Репутация: +16/-0
Offline Offline

Сообщений: 469


Просмотр профиля
« Ответ #3 : 20 Февраль 2006, 17:12:50 »

get(PROXY_HOST, PROXY_PORT, REUUEST_URI);
google.com как всегда для примера

$GLOBALS['HL'] = array('Host' => SITE_HOST, 'Connection' => 'Close');
здесь указываешь нужный хост, а дальше разбираешь $url чтоб в "GET $url HTTP/1.1" ушёл урль без хоста например "/scripts/test.php"

$status='';
while (!$status)
$status=fgets($fp,4096);  
while(!feof($fp)) {
$s=fgets($fp,40000);  
$data.=$s;
}  
здесь первым while в $status (в никуда) считываются все пришедшие данные, а второй while не выполняется, так как уже достигнут этот конец. убирая первый while функция начинает работать - вся проблема в нём

Код:
<?php

function get($addr,$port,$url)
{
$url explode('/'$url2);
$HL = array('Host' => $url[0], 'Connection' => 'Close');

$fp=fsockopen($addr,$port,$errno,$errstr,100);
$send="GET /".(isset($url[1]) ? $url[1] : '')." HTTP/1.1\r\n";
reset($HL);
while(list(
$header,$value)=each($HL))  
$send.="$header$value\r\n";
$send.="\r\n";  
fputs($fp,$send);
$data='';
$status='';
while(!
feof($fp)) {
$s=fgets($fp,40000);  
$data.=$s;
}  
fclose($fp);
return 
$data;


var_dump(get('202.88.211.57''80''forum.grodno.net/cgi-bin/YaBB.pl?num=1140395451/0#3'));

?>
« Последнее редактирование: 20 Февраль 2006, 18:03:44 от X-Penguin » Записан
Страниц  :   Вверх
  Печать  
 
Перейти в:  

Войти
Войдите, чтобы добавить комментарий

Войдите через социальную сеть

Имя пользователя:
Пароль:
Продолжительность сессии (в минутах):
Запомнить:
Забыли пароль?

Контакт
Powered by MySQL Powered by PHP Мобильная версия
Powered by SMF 1.1.20
SMF © 2006-2024, Simple Machines
Simple Audio Video Embedder
| Sitemap
Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0,089 секунд. Запросов: 19.