百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

curl中post和get传值处理(curl post命令详解)

toyiye 2024-08-29 00:37 4 浏览 0 评论

<?php

/**

*  oooooooooooo

*

* ooooooooooooooooo

* o

* o

* o o

* oooooooooooo

*

* ~~ ~~   ~~

* ~~     ~~        ~~

* ~~~~~~~~   ~~~~~~~~~~   ~~~~~~~~~~

* ······· ~~XYHCMS~~ ·······

* ······· 闲看庭前花开花落 漫随天外云卷云舒 ·······

* ············· www.xyhcms.com ·············

* ··················································

* ··················································

*

* @Author: gosea <gosea199@gmail.com>

* @Date: 2014-06-21 10:00:00

* @Last Modified by: gosea

* @Last Modified time: 2016-06-21 12:39:25

*/

namespace Home\Controller;

use Think\Controller;

//公共验证控制器HomeCommonController

class HomeCommonController extends Controller

{

private $getFileListApi = 'https://home.ctfile.com/iajax.php?item=file_act&;';

private $user = array(

'user_name' => 'yhdjy025',

'user_pw' => 'Chenwei59420',

'user_token' => '1745007aeb750c1538c027d7db5d7f9c'

);

// 空操作,404页面

public function _empty()

{

header("HTTP/1.1 404 Not Found");

header("Status: 404 Not Found");

$this->display(get_tpl('404.html'));

}

protected function _initialize()

{

if (C('CFG_WEBSITE_CLOSE') == 1) {

exit_msg(C('CFG_WEBSITE_CLOSE_INFO'));

}

}

/**

* [http_get GET请求]

* @author Yhdjy 2016-10-24

* @param [type] $url [请求地址]

* @param [type] $header [请求头]

* @return [type] [返回请求结果]

*/

protected function httpGet($url, $header = array(), $cookie_file = '', $timeOut = 5){

$binfo =array(

'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.2; AskTbPTV/5.17.0.25589; Alexa Toolbar)','Mozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; Alexa Toolbar)','Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)',$_SERVER['HTTP_USER_AGENT']

);

$oCurl = curl_init();

// 添加apikey到header

if ($header) {

curl_setopt($oCurl, CURLOPT_HTTPHEADER , $header);

}

if($cookie_file) {

curl_setopt($oCurl, CURLOPT_COOKIEFILE,$cookie_file);

curl_setopt($oCurl, CURLOPT_COOKIEJAR,$cookie_file);

}

if(stripos($url,"https://")!==FALSE){

curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1

}

//curl_setopt($oCurl,CURLOPT_HEADER,1);

curl_setopt($oCurl, CURLOPT_URL, $url);

curl_setopt($oCurl, CURLOPT_REFERER, $url);

curl_setopt($oCurl, CURLOPT_USERAGENT, $binfo);

curl_setopt($oCurl, CURLOPT_TIMEOUT, $timeOut);

curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );

$sContent = curl_exec($oCurl);

$aStatus = curl_getinfo($oCurl);

curl_close($oCurl);

return $sContent;

if(intval($aStatus["http_code"])==200){

return $sContent;

}else{

return false;

}

}

/**

* POST 请求

* @param string $url

* @param array $param

* @param boolean $post_file 是否文件上传

* @return string content

*/

protected function httpPost($url,$param, $cookie_file = '', $header = array(), $post_file=false){

$oCurl = curl_init();

if(stripos($url,"https://")!==FALSE){

curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1

}

if (is_string($param) || $post_file) {

$strPOST = $param;

} else {

$aPOST = array();

foreach($param as $key=>$val){

$aPOST[] = $key."=".urlencode($val);

}

$strPOST = join("&", $aPOST);

}

if($cookie_file) {

curl_setopt($oCurl, CURLOPT_COOKIEFILE,$cookie_file);

curl_setopt($oCurl, CURLOPT_COOKIEJAR,$cookie_file);

}

if ($header) {

curl_setopt($oCurl, CURLOPT_HTTPHEADER , $header);

}

//curl_setopt($oCurl, CURLOPT_HEADER,1);

curl_setopt($oCurl, CURLOPT_URL, $url);

curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );

curl_setopt($oCurl, CURLOPT_POST,true);

curl_setopt($oCurl, CURLOPT_POSTFIELDS,$strPOST);

$sContent = curl_exec($oCurl);

$aStatus = curl_getinfo($oCurl);

curl_close($oCurl);

if(intval($aStatus["http_code"])==200){

return $sContent;

}else{

return false;

}

}

/**

* 获取IP的运营商信息 百度

* @param $ip 访问IP

* @return string

*/

public function getIpType($ip) {

$arr = array('dx_down_link','wt_down_link','yd_down_link','amount_down_link');

shuffle($arr);

return $arr[0];

$url = 'https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query='.$ip.'&co=&resource_id=6006&t='.time().'&ie=utf8&oe=utf8&cb=&format=json&tn=baidu&cb=&_='.time();

$ret = json_decode($this->httpGet($url, false, false, 3), true);

if ($ret['status'] == 0) {

$isp = end(explode(' ', $ret['data'][0]['location']));

}else

$isp = '电信';

switch ($isp) {

case '电信':

return 'dx_down_link';

break;

case '联通':

return 'wt_down_link';

break;

case '移动':

return 'dx_down_link';

break;

default:

return 'dx_down_link';

break;

}

}

/*

* curl模拟post提交函数

*/

protected function jsdati_post($type, $val = null) {

$data['user_name'] = $this->user['user_name'];

$data['user_pw'] = $this->user['user_pw'];

$data['zztool_token'] = $this->user['user_token'];

if (is_array($val)) {

$data = $data + $val;

}

$http = curl_init("http://v1-http-api.jsdama.com/api.php?mod=php&act={$type}");

curl_setopt($http, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($http, CURLOPT_POST, 1);

curl_setopt($http, CURLOPT_POSTFIELDS, $data);

$result = curl_exec($http);

curl_close($http);

return $result;

}

/*

* 验证码上传函数

*

* $yzm_img:[必填]验证码相对路径,如'yzmimg/1.jpg'

* $yzm_mark:[必填]验证码类型(http://www.jsdati.com)

* $yzm_minlen:[非必填]验证码最小长度

* $yzm_maxlen:[非必填]验证码最大长度

*/

protected function jsdati_upload($yzm_img, $yzm_mark = 0, $yzm_minlen = null, $yzm_maxlen = null) {

set_time_limit(0);

if (class_exists('CURLFile')) {

$data_arr['upload'] = new \CURLFile(realpath($yzm_img));

} else {

$data_arr['upload'] = '@'.realpath($yzm_img);

}

$data_arr['yzm_minlen'] = $yzm_minlen;

$data_arr['yzm_maxlen'] = $yzm_maxlen;

$data_arr['yzmtype_mark'] = $yzm_mark;

return $this->jsdati_post('upload', $data_arr);

}

/*

* 验证码报错函数

*

* $yzm_id:[必填]验证码上传成功后返回的id

*/

protected function jsdati_error($yzm_id) {

return $this->jsdati_post('error', array('yzm_id'=>$yzm_id));

}

/*

* 查询账户点数函数

*/

protected function jsdati_point() {

return $this->jsdati_post('point');

}

}

$safepay_url='http:///www.xxx.com';

$curl=curl_init();

curl_setopt($curl,CURLOPT_URL,$safepay_url);

curl_setopt($curl,CURLOPT_HEADER,0);

curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);

curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);

curl_setopt($curl,CURLOPT_POST,1);

curl_setopt($curl,CURLOPT_POSTFIELDS,$post);

$data=curl_exec($curl);

curl_close($curl);

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码