Selamat Datang

Assalamu'alaikum Warahmatullahi Wabarokatuh Wamaghfiratuh, Moga anda dapat mengambil manfaat dari keberadaan blog Prestasikoe ini.

blog ini sekedar kumpulan" yang tidak bisa ku ingat seluruhnya,
makanya dibuat dlm tulisan.

produk

produk

Monday, April 28, 2008

Php HttpRequest

Ni Aq kasi HttpRequest pake php

biar gampang klo ada crosing data antar server

Scrip ini udah di coba di labnya bageer83

Selamat Mencoba








<?php

error_reporting(E_ALL);

set_time_limit(10);

class HttpRequest

{

var $sHostAdd;

var $sUri;

var $iPort;

var $sPostData;

var $sRequestHeader;

var $sResponse;



function HttpRequest($sUrl)

{

$sPatternUrlPart = '/http:\/\/([a-z-\.0-9]+)(:(\d+)){0,1}(.*)/i';

$arMatchUrlPart = array();

preg_match($sPatternUrlPart, $sUrl, $arMatchUrlPart);



$this->sHostAdd = gethostbyname($arMatchUrlPart[1]);

if (empty($arMatchUrlPart[4]))

{

$this->sUri = '/';

}

else

{

$this->sUri = $arMatchUrlPart[4];

}

if (empty($arMatchUrlPart[3]))

{

$this->iPort = 80;

}

else

{

$this->iPort = $arMatchUrlPart[3];

}



$this->addRequestHeader('Host: '.$arMatchUrlPart[1]);

$this->addRequestHeader('Connection: Close');

}



function addRequestHeader($sHeader)

{

$this->sRequestHeader .= trim($sHeader)."\r\n";

}



function addData($var,$data){

$this->sPostData .= "&"."$var"."=".urlencode("$data");

}



function getData(){

return $this->sPostData;

}



function sendRequest($sMethod = 'GET', $sPostData = '')

{

$sPostData.=$this->getData();

//echo $sPostData;



if ($sMethod == 'GET'){

$sRequest = $sMethod." ".$this->sUri."?".$sPostData." HTTP/1.1\r\n";

}else{

$sRequest = $sMethod." ".$this->sUri." HTTP/1.1\r\n";

}



//$sRequest = $this->sUri." HTTP/1.1\r\n";



$sRequest .= $this->sRequestHeader;

if ($sMethod == 'POST')

{

$sRequest .= "Content-Type: application/x-www-form-urlencoded\r\n";

$sRequest .= "Content-Length: ".strlen($sPostData)."\r\n";

$sRequest .= "\r\n";

$sRequest .= $sPostData."\r\n";

}

$sRequest .= "\r\n";



$sockHttp = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$sockHttp)

{

die('socket_create() failed!');

}



$resSockHttp = socket_connect($sockHttp, $this->sHostAdd, $this->iPort);

if (!$resSockHttp)

{

die('socket_connect() failed!');

}



socket_write($sockHttp, $sRequest, strlen($sRequest));



$this->sResponse = '';

while ($sRead = socket_read($sockHttp, 1024))/*4096*/

{

$this->sResponse .= $sRead;

}

socket_close($sockHttp);

}



function getResponse()

{

return $this->sResponse ;

}



function getResponseBody()

{

$sPatternSeperate = '/\r\n\r\n/';

$arMatchResponsePart = preg_split($sPatternSeperate, $this->sResponse,2);

//return $arMatchResponsePart[0];/*header information*/

//return $arMatchResponsePart[1];/*isi data*/

$arMatchResponsePart = preg_split("/\r\n/",$arMatchResponsePart[1],2);/*dibatas 2 partisi*/

$response=substr_replace($arMatchResponsePart[1],"",-5,1);/*menghilangkan end response 0*/

return $response;

}

}

$HttpRequest=new HttpRequest("http://localhost/lab/phpsocket/dataonserver.php");

//$HttpRequest->addRequestHeader("Content-Type: text/html; charset=utf-8");

//$HttpRequest->addRequestHeader("Accept: text/plain");



$HttpRequest->addData("act","smsout");

$HttpRequest->addData("mess","test `~!@#$%^&*()_+|{}:\"<>?-=\[];',./");



$HttpRequest->sendRequest("GET","");

//$HttpRequest->sendRequest("POST","act=".urlencode("testdari send"));



//echo $HttpRequest->getResponse();

echo $HttpRequest->getResponseBody();


bg83

No comments: