用php模拟post来提交数据
2006-06-03  作者:amao  同分类文章
description:
利用php的socket编程来直接给接口发送数据来模拟post的操作。
<?PHP /************************************************************************
Name: POST 测试程序 Vesion: 1.0 Date: 2004-08-05 *************************************************************************
/ $flag = 0;
 //要post的数据
$argv = array(
    'var1'=>'abc',
    'var2'=>'你好吗');
//构造要post的字符串
foreach ($argv as $key=>$value) {
    if ($flag!=0) {
        $params .= "&";
        $flag = 1;
    }
    $params.= $key."="; $params.= urlencode($value);
    $flag = 1;
    }
    $length = strlen($params);
     //创建socket连接
    $fp = fsockopen("127.0.0.1",80,$errno,$errstr,10) or exit($errstr."--->".$errno);
    //构造post请求的头
    $header = "POST /mobile/try.php HTTP/1.1 ";
    $header .= "Host:127.0.0.1 ";
    $header .= "Referer:/mobile/sendpost.php ";
    $header .= "Content-Type: application/x-www-form-urlencoded ";
    $header .= "Content-Length: ".$length." ";
    $header .= "Connection: Close ";
    //添加post的字符串
    $header .= $params." ";
    //发送post的数据
    fputs($fp,$header);
    $inheader = 1;
    while (!feof($fp)) {
        $line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据
        if ($inheader && ($line == " " || $line == " ")) {
             $inheader = 0;
        }
        if ($inheader == 0) {
            echo $line;
        }
    }
fclose($fp);
?>

还可以使用php类HttpClient
Snoopy http://sourceforge.net/projects/snoopy/
or httpClient http://scripts.incutio.com/httpclient/



相关
点击后退按钮,需要重新录入数据,如何解决
通过fishbone这个项目新的东西
PHP中的串行化变量和序列化对象
不需要mod_rewrite直接使用php实现伪静态化页面
php上传进度条
email地址php检测
无限级下拉菜单代码:
windows 下安装 php_imagick.dll(Image magick Functions)
utf8字符串截取
Mysql 不能从远程连接的一个解决方法