Заходи заходи
Имя

Пароль



Регистрация
Сейчас в чате 0
никого нет
Их боялся Флинт
Модеры:
Orkana Джа Cyber_Ghost zl0l

Админы:
del Tёмный DreamX MoRS
Бесполезные линки

Valid XHTML 1.0 Transitional

MoRS: php
MoRS
pic
30 мар 2009 16:37
Изменен 13 мая 2015 21:24
Редактировать
Ссылка на этот пост

Простой скрипт для работы c http через сокет
 
PHP
<?php
 

/*
Библиотечка для работы с http через сокет.
В функцию Request передаем параметры:
        Host - адрес сервера
        Target - имя документа (скрипта)
        Vars - ассоциативный массив переменных, которые нужно передать (имя - значение)
        Cookies - ассоциативный массив кукисов (имя - значение)
        Method - (POST, GET)
 
В ответ получаем ассоциативный массив из трех элементов:
        Cookies - куки от сервера
        Header - заголовок ответа сервера
        Data -  данные от сервера
 
--     
mors @ list.ru
*/

 

//========================================================
 
function Request ($Host, $Target, $Vars, $Cookies, $Metod)
//========================================================
 
{
 
if (!empty($Vars))
 
        {
 
        foreach ($Vars as $Var => $Value)
 
                {
 
                $Data .= $Var.’=’.$Value.’&’;
 
                }
 
        $Data = substr ($Data,0, (strlen ($Data)-1));
 
        if ($Metod == "GET")
 
                {
 
                $Data = ’?’.$Data;
 
                }
 
        }
 
if (!empty($Cookies))
 
        {       
 
        foreach ($Cookies as $Name => $Value)
 
                {
 
                $Cook .= $Name.’=’.$Value.’; ’;
 
                }
 
        $Cook = substr ($Cook,0, (strlen ($Cook)-2));
 
        }
 
       
 
if ($Metod == "POST")
 
        {
 
        return  SendPost ($Host, $Target, $Data, $Cook);
 
        }
 
        else
 
        {
 
        return  SendGet ($Host, $Target, $Data, $Cook);
 
        }
 
}
 
//===============================================
 
function SendPost ($host, $target, $data, $cook)
 
//===============================================
 
{
 
$ReqHeader = "POST /$target HTTP/1.0
"
.
 
"Host: $host
"
.
 
"Content-Type: application/x-www-form-urlencoded
"
.
 
"Content-Length: " . strlen($data) ."
"
.
 
"Cookie: $cook
"
.
 
"Connection: close
 
"
;
 
$socket = fsockopen($host, 80);
 
/*if (!$socket) {
 
         $Result["errno"] = $errno;
 
         $Result["errstr"] = $errstr;
 
         return $Result;
 
} */

 
fputs($socket, $ReqHeader);
 
fputs($socket, $data);
 
while (!feof($socket))
 
        $result .= fgets($socket, 1024);
 
fclose($socket);
 
return ParseServerReply($result);
 
}
 
//=============================================
 
function SendGet ($host, $target, $data, $cook)
 
//=============================================
 
{
 
$ReqHeader = "GET /$target$data HTTP/1.1
"
.
 
"Host: $host
"
.
 
"Cookie: $cook
"
.
 
"Keep-Alive: 300
"
.
 
"Referer: http://www.delchat.ru/chat_index.php
"
.
 
"Connection: keep-alive
 
"
;
 

 

 
$socket = fsockopen($host, 80, &$errno, &$errstr);
 
if (!$socket) {
 
         $Result["errno"] = $errno;
 
         $Result["errstr"] = $errstr;
 
         return $Result;
 
}
 
fputs($socket, $ReqHeader);
 
while (!feof($socket))
 
        $result .= fgets($socket, 1024);
 
fclose($socket);
 
return ParseServerReply($result);
 
}
 
//===========================================
 
function ParseServerReply($Socket_receive)
 
//===========================================
 
{
 
$Header = substr($Socket_receive, 0, strpos($Socket_receive, "
 
"
));
 
$Header = str_replace(<!--notypo-->,<!--/notypo-->, $Header);
 
$Header_lines = explode ("
"
,$Header);
 
$Datasubstr($Socket_receive, strpos($Socket_receive, "
 
"
) + 4);
 

 
foreach ($Header_lines as $Value)
 
        {
 
        list($Param, $Val) = split(": ", $Value);
 
        if ($Param == "Set-Cookie") {$Server_replay[$Param] .=$Val.’/’;}
 
                else { $Server_replay[$Param] = $Val;}
 
        }
 
$Server_replay["Set-Cookie"] = substr ($Server_replay["Set-Cookie"],0, (strlen ($Server_replay["Set-Cookie"])-1));
 

 
$Cook_array = explode (’/’, $Server_replay["Set-Cookie"]);
 

 
foreach ($Cook_array as $value)
 
        {
 
        list ($NameValue, $Exp) = split("; ", $value);
 
        list ($Name, $Val) = split ("=", $NameValue);
 
        $Cookies[$Name] = $Val;
 
        if ($Val == "deleted") unset ($Cookies[$Name]);
 
        }
 

 
$Server_replay["Cookies"] = $Cookies;   
 
$Server_replay["Header"] = $Header;
 
$Server_replay["Data"] = $Data;
 
return $Server_replay;
 
}
 

?>

 
x
pic
07 мая 2014 17:15

Редактировать
Ссылка на этот пост
Простите:
HelloWorld

P.S.
Плизик, помогите запилить на пхп функцию, расчитывающую последовательность фибоначи. Где каждая следующая цифра сумма двух предыдущих, вот так: 1,1,2,3,5,8,13,21,34,55 и т.п.
Пожалуйста с комментариями! Спасибо.
MoRS
pic
13 мая 2015 06:03
Изменен 13 мая 2015 06:13
Редактировать
Ссылка на этот пост
представь длиннууйю железную линейку на которой рамка ездит с тремями окошками (before, current, next)
 
$next = $before + $current;
 
потом окошко сдвигаецца вправо и тут главное.. не проебать))
Новое сообщение