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:
Post a Comment