Twitter 今天即将飞回广州00:42夜已深,刚写完日记 杭州 释然 回味 “我会回来滴”灰大狼
 PHPma >> Php > PHP模拟表单POST发送数据

有时候,系统上的需要模拟表单$_POST发送数据到远端服务器;或者是要做某个API接口时,需要模拟表单去发送数据、省去人工操作,懒人耶!

今天有空特意做了一个小小的测试,PHP模拟表单POST数据到远端服务器,详情看如下的示例代码...拷贝下来既可运行。url地址请自行修改为本地地址。

/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
$url='http://www.phpma.com/y/g.php';
$data = array (
        'clientname' => "curls",
        'clientpasswd' => "123456",
    );
$referrer="";
$url_info = parse_url($url);
// dump($url_info);
// Building referrer if not given use this script as referrer
if($referrer == "") $referrer=$_SERVER["SCRIPT_URI"];
// dump($referrer);
// making string from $data
foreach($data as $key=>$value) {
    $values[] = "$key=".urlencode($value);
}
$data_string = implode("&",$values);

// Find out which port is needed - if not given use standard (=80)
if(!isset($url_info["port"])) $url_info["port"]=80;
// building POST-request: 头部信息
$header .= "POST ".$url_info["path"]." HTTP/1.1\n";
$header .= "Host: ".$url_info["host"]."\n";
$header .= "Referer: $referrer\n";
$header .= "Content-type: application/x-www-form-urlencoded\n"; //multipart/form-data
$header .= "Content-length: ".strlen($data_string)."\n";
$header .= "Connection: close\n";
$header .= "\n";
$header .= $data_string."\n";
$fp = fsockopen($url_info["host"],$url_info["port"]);
fputs($fp, $header);
while(!feof($fp)) {
    $result .= fgets($fp, 128);
}
/**
 * 调试,打印数据
 */
function dump($name) {
    echo "
";
    print_r($name);
    echo "
"; }
POST滴接收地址:http://www.phpma.com/t/g.php phpma.com
ini_set('display_errors', 1);
error_reporting(E_ALL);
$filename = 'test.txt';
$content = var_export($_POST,true);
$content .= var_export($_FILES,true);
if (!$handle = fopen($filename, 'w')) {
     echo "不能打开文件 $filename";
     exit;
}
/* 将$content写入到我们打开的文件中。*/
if (fwrite($handle, $content) === FALSE) {
    echo "不能写入到文件 $filename";
    exit;
}
echo "成功地将 $content 写入到文件$filename";
fclose($handle);
前程序是发送$_POST,后程序就是接收数据用的(就当一个接收POST滴页面,也是任意服务器API接口需要滴数据滴页面)
                            /**
                             ** 温馨提示:本站所有文章均来自PHPma精心编辑,99%原创,转帖之人需保留本站的链接
                             ** 本站所有文章仅代表本人观点,转帖概不负责
                             ** 作者:PHPma
                             **/
                        

About PHPma

PHPma一个主要关注PHP技术为主的技术杂烩站点

一个在PHP技术圈子里面活跃D虾米,分享一个草根IT程序员D劳动成果,亦是此草根IT程序员发泄的场所。

Email:phpmacom@gmail.com

网站分类

copyright 2010 - 2012, 版权所有  All Rights Reserved