php resultstr,php重构HTTP包 获取result

目的是做一个分发的php脚本,根据客户端的不同需求,分发到不同的功能脚本。所以需要首先检验客户端发来的HTTP包中的请求类型,然后再进行分发。

分发脚本:<?php

/*

* This file is to distribute the requests to different servers , is divided by functions

* Para : Http-Request

* Data : 2014.5.5

*/

// include the mapping-array

include './mapping/RequestType.php';

include './mapping/MappingTable.php';

// Get functionName from clients

$functionName = $_POST['functionName'];

// include the ReBuildHttpBag function

include 'ReBuildHttpBag.php';

// Generate the para needed

$curPageName = "/WinPhone/Distribute.php";

$desPageName = $mapping[$functionName]['pageName'];

$serverPath = $mapping[$functionName]['serverPath'];

$serverPort = 80;

ReBuildHttpBag($_GET, $curPageName, $desPageName, $serverPath, $serverPort);

?>

ReBuildHttpBag定义:<?php

function ReBuildHttpBag($argv=array(), $curPageName, $desPageName, $serverPath , $serverPort)

{

$flag = 0;

$post = '';

$errno = '';

$errstr = '';

//构造要post的字符串

foreach ($argv as $key=>$value) {

if ($flag!=0) {

$post .= "&";

$flag = 1;

}

$post.= $key."=";

$post.= urlencode($value);

$flag = 1;

}

$length = strlen($post);

//创建socket连接

$fp = fsockopen($serverPath,$serverPort,$errno,$errstr,10) or exit($errstr."--->".$errno);

//构造post请求的头

$header = "POST ".$desPageName." HTTP/1.1\r\n";

$header .= "Host:".$serverPath."\r\n";

$header .= "Referer: ".$curPageName." \r\n";

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

$header .= "Content-Length: ".$length."\r\n";

$header .= "Connection: Close\r\n\r\n";

//添加post的字符串

$header .= $post."\r\n";

//发送post的数据

fputs($fp,$header);

$inheader = 1;

while (!feof($fp)) {

$line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据

if ($inheader && ($line == "\n" || $line == "\r\n")) {

$inheader = 0;

}

if ($inheader == 0) {

echo $line;

}

}

fclose($fp);

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值