# 模拟GET请求
~~~
$url='http://www.baidu.com'; //网站
$ch=curl_init(); //初始化curl会话返回curl句柄(资源)
curl_setopt($ch,CURLOPT_URL,$url); //设置获取地址变量
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //以字符串形式返回
curl_exec($ch); //接收get值回来
curl_close($ch); //关闭curl连接
//以上为GET请求
~~~
## 模拟GET请求实战代码案例
~~~
function er($url){
$u='https://api.uomg.com/api/qrcode?url='.$url; //网站
$ch=curl_init(); //初始化curl会话返回curl句柄(资源)
curl_setopt($ch,CURLOPT_URL,$u); //设置获取地址变量
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //以字符串形式返回
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //跳过https炎症
$ma=curl_exec($ch);
curl_close($ch); //关闭句柄
return base64_encode($ma);
}
~~~
![](https://img.kancloud.cn/34/23/3423c7bf47492faae9b15fd723a358f4_1379x668.png)
# 模拟POST请求
~~~
$url='http://apis.juhe.cn/qrcode/api';
//$data=['user_name'=>'liudehua']; 可以用数组
$data='key=b78526ba52010c94e266211c9c9916d5&text=http://www.baidu.com&el=&bgcolor=ffffff&fgcolor=000000&logo=&w=30&m=10&lw=10&type=1'; //可以用urlencoded方式
$ch=curl_init(); //初始化curl会话返回curl句柄(资源)
curl_setopt($ch,CURLOPT_URL,$url); //设置获取地址变量
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //以字符串形式返回
curl_setopt($ch,CURLOPT_POST,true); //POST请求方法
curl_setopt($ch,CURLOPT_POSTFIELDS,$data); //发送一个数组
$rec=curl_exec($ch); //接收POST回来
curl_close($ch); //关闭curl连接
echo $rec;
~~~
## 第二步骤用法设置CURL的传输项:
官网地址:
https://www.php.net/manual/zh/function.curl-setopt.php
```
CURLOPT_RETURNTRANSFER
TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出。默认直接输出
CURLOPT_POST
TRUE 时会发送POST请求,类型为:application/x-www-form-urlencoded, 是HTML表单提交时最常见的一种。
CURLOPT_POSTFIELDS
这个参数可以是urlencoded后的字符串,类似'para1=val1¶2=val2$.....',也可以使用一个以字段名为建值,字段数位值的数组
CURLOPT_FOLLOWLOCATION
TRUE 时将会根据服务器返回HTTP头中的“Location:”重定向
```
##
## 有头部文件的时候的请求:
~~~
public function oppo()
{
$timestamp=time(); //时间戳
$ouId='D91FF8E2ACA4435FBFC8401EED516A81bca035309b94ff5964d35ac284052076'; //从前端传递过来 设备识别码
$ouId =openssl_encrypt($ouId, 'AES-128-ECB',base64_decode('XGAXicVG5GMBsx5bueOe4w=='),0,'');
$josnarry = [
"ouId" => $ouId,
"appType" => 3,
"dataType" => 16,
"ascribeType" => 1,
"channel" => 1,
"type" => 2,
"pkg" => "com.hckz.dxkj",
"timestamp" => $timestamp
];
$postData=json_encode($josnarry); //转换为JSON字符串
$salt='e0u6fnlag06lc3pl'; //salt数据
$signature= md5( $postData.$timestamp.$salt); //json MD5后数据
dump($signature);
//以下为发送POST请求
$url='https://api.ads.heytapmobi.com/api/uploadActiveData';
//请求头部
$headers = array('signature:'.$signature,'timestamp:'.$timestamp,'Content-Type:application/json',); //头部数组的样式(这里一定要是这个格式)
$data=[
'ouId'=> $josnarry['ouId'],
'appType'=>$josnarry['appType'],
'dataType'=>$josnarry['dataType'],
'ascribeType'=>$josnarry['ascribeType'],
'channel'=>$josnarry['channel'],
'type'=>$josnarry['type'],
'pkg'=>$josnarry['pkg'],
'timestamp'=>$josnarry['timestamp']
];
$data=json_encode($data); //如果头部为JSON那么这里的数据必须是json格式
$ch=curl_init(); //初始化curl会话返回curl句柄(资源)
curl_setopt($ch,CURLOPT_URL,$url); //设置获取地址变量
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //以字符串形式返回
curl_setopt($ch,CURLOPT_POST,true); //POST请求方法
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//设置请求头部
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //跳过https验证
$rec=curl_exec($ch); //接收POST回来
curl_close($ch); //关闭curl连接
dump($rec);
}
~~~
# 详细可以看PHP中文网的问题解决:
https://www.php.cn/php-ask-456762.html
- 变量删除查找与static静态变量
- 赋值原理
- global涵数引入全局变量使用
- 数据类型
- 数据类型判断is_
- PHP输出
- PHP指针(取址运算)
- PHP运算符
- 常量
- 字符串
- 字符串添加反斜杠函数addslashes($变量)
- htmlspecialchars()转字符实体
- int strcmp()判断2个字符串大小
- strstr() 查找字符串
- 字符串常用系统内置函数
- 控制流之if
- switch判断方法
- while循环
- for循环
- 跳出循环
- PHP文件引文入( include与require)
- PHP文件引入include_once与require_once
- 函数(函数各种应用以及约束方法)
- global 引入函数外的变量
- 函数的递归
- 数组(遍历方法)与( foreach()遍历方法)
- 数组函数
- PHP时间操作
- 常用数学内置函数
- 正则表达式
- PHP 九大超全局变量(内置的)
- 超全局变量$_SERVER的详细介绍
- PHP类
- 类的$this
- 类的构造方法__construct()
- 类的修饰符 public private protected
- 类的继承
- 类的多态(instanceof)方法
- 类的静态方法与常用关键字(final static self parent clone )
- 类的__set() __get() 方法
- 类的重载
- 类的__call()与__callstatic()方法
- 类的抽象类与方法
- 抽象类接口interface (实现子类继承多个抽象类)
- 类的trait (解决单继承的限制)
- 命名空间
- 类的魔术常量以及系统函数
- mysql数据库
- 数据库的概念
- SQL语句规范
- 数据库字段类型
- 字段是属性(创建数据库字段用)
- 数据库操作(增删改)
- 数据表与字段(DDL)(增删改)
- 数据的操作(DML)(增删改)
- 数据的查询数据(最重要最核心经常看)
- 数据库 字符集 引擎 校对等
- cookie创建使用与删除
- session创建使用与删除
- 在cookie禁止的情况下session的使用方法
- session的配置以及session与cookie的区别
- session实战登录
- PHP文件处理函数
- PHP打开读取写入文件
- file_get_contents GET请求接收
- PHP文件上传以及过大报错解决方案
- 验证并控制上传格式与大小
- 判断是否有目录(如果没有就创建目录)
- 上传文件到目录move_uploaded_file()
- 图片上传用class写法
- PDO链接数据库与exec()使用(只能用于增,删,改)
- PDO-推荐方法prepare() 增删改查
- 关于PDO类种事务使用
- 类的单例模式写法
- 自动加载autoload()
- composer安装与使用
- PHP操作XML
- PHP操作JSON
- curl GET与POST请求接收
- 自己封装的一些实用函数
- 微信公众号开发
- 常见问题以及解决
- PHP反序列化HTML
- try catch尝试执行与异常
- json 对象转字符串数组的方法可以在用json_e转数组