PHP 收藏本版 已有0 收藏本版 发新帖

[求助] PHP求个简单的POST带cookies的例子

 关闭 [复制链接]
发表于 2016-10-29 23:18:31 | 显示全部楼层 |阅读模式
5麦片
本帖最后由 虚伪 于 2016-10-30 00:52 编辑

这个板块居然没人?我来充实一下板块
求个POST带cookies的例子
——————————
服务器根目录
——————————
cookies.txt
post.php
——————————
cookies取根目录里的TXT文本。
例子开头

<?php

$url = 'http://XXX.COM';
$postdata= 'A=10&B=11&C=12';


最佳答案

查看完整内容

用我之前封装的这个curl函数可以轻易实现.
回复

使用道具 举报

精彩评论 2

跳转到指定楼层
亚子 发表于 2016-10-29 23:18:32
用我之前封装的这个curl函数可以轻易实现.

<?

/**
* curl模拟提交
* @param        string                        $url                网址
* @param        array/string        $opt                提交参数
* @param        string                        &$header        取回的头信息
* @param        string                        $redirect        是否重定向
* @param        boolean                        $ssl                验证https证书
* @return        [type]                                                返回信息
*/
function curl($url, $opt='GET', &$header=null, $redirect=true, $ssl=false){

        //初始化
        $ch = curl_init($url);

        //配置设置
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $ssl);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $ssl);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $redirect);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                #返回结果
        curl_setopt($ch, CURLOPT_HEADER, true);                                #显示协议头

        if(is_array($opt)){

                //转小写
                $opt = array_change_key_case($opt, CASE_LOWER);

                //POST
                if(isset($opt['type']) && strtoupper($opt['type'])=='POST'){
                        curl_setopt($ch, CURLOPT_POST, true);
                        curl_setopt($ch, CURLOPT_POSTFIELDS, (isset($opt['data']) ? $opt['data'] : ''));
                }

                //User-Agent
                if(array_key_exists('ua', $opt))
                        curl_setopt($ch, CURLOPT_USERAGENT, $opt['ua']);

                //Header
                if(array_key_exists('header', $opt)){
                        curl_setopt($ch, CURLOPT_HTTPHEADER, (array)$opt['header']);
                }

                //Cookie
                if(array_key_exists('cookie', $opt))
                        curl_setopt($ch, CURLOPT_COOKIE, $opt['cookie']);

                //Referer
                if(array_key_exists('referer', $opt))
                        curl_setopt($ch, CURLOPT_REFERER, $opt['referer']);

        }else{

                //仅POST
                if(strtoupper((string)$opt) == 'POST')
                        curl_setopt($ch, CURLOPT_POST, true);

        }

        $result = curl_exec($ch);

        if(curl_errno($ch)){
                $result = curl_error($ch);
        }else{

                //获取头长度
                $length = curl_getinfo($ch, CURLINFO_HEADER_SIZE);

                //取出头信息
                $header = substr($result, 0, $length);

                //去掉头信息
                $result = substr($result, $length);

        }

        //释放
        curl_close($ch);

        return $result;

}

// POST代码开始
$url = 'http://XXX.COM';
$postdata= 'A=10&B=11&C=12';
$cookieFile = 'cookies.txt';

$result = curl($url, array(
        'type'          =>      'POST',
        'data'          =>      $postdata,
        'cookie'      =>      file_get_contents($cookieFile)
));

// 打印出POST结果
echo $result;


直接保存成php文件即可.

评分 参与人数 2好评 +1 麦片 +1 荣誉 +1 收起 理由
861078848 + 1 + 1 新技能已Get
三咲亚子 + 1 奖励1点荣誉

查看全部评分

回复

使用道具 举报

羽傲天 发表于 2016-11-3 23:30:27
我去。。。。还能php
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋| MLG8.CC

Copyright © 2001-2013 Comsenz Inc.   All Rights Reserved.

Powered by Discuz! X3.2( 宁ICP备16002180号 )

快速回复 返回顶部 返回列表