```
<?
/**
* [http 调用接口函数]
* @param string $url [接口地址]
* @param array $params [数组]
* @param string $method [GET\POST\DELETE\PUT]
* @param array $header [HTTP头信息]
* @param integer $timeout [超时时间]
* @return [type] [接口返回数据]
*/
function http($url, $params, $method = 'GET', $header = array(), $timeout = 5)
{
// POST 提交方式的传入 $set_params 必须是字符串形式
$opts = array(
CURLOPT_TIMEOUT => $timeout,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_HTTPHEADER => $header
);
/* 根据请求类型设置特定参数 */
switch (strtoupper($method)) {
case 'GET':
$opts[CURLOPT_URL] = $url . '?' . http_build_query($params);
break;
case 'POST':
$params = http_build_query($params);
$opts[CURLOPT_URL] = $url;
$opts[CURLOPT_POST] = 1;
$opts[CURLOPT_POSTFIELDS] = $params;
break;
case 'DELETE':
$opts[CURLOPT_URL] = $url;
$opts[CURLOPT_HTTPHEADER] = array("X-HTTP-Method-Override: DELETE");
$opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';
$opts[CURLOPT_POSTFIELDS] = $params;
break;
case 'PUT':
$opts[CURLOPT_URL] = $url;
$opts[CURLOPT_POST] = 0;
$opts[CURLOPT_CUSTOMREQUEST] = 'PUT';
$opts[CURLOPT_POSTFIELDS] = $params;
break;
default:
throw new Exception('不支持的请求方式!');
}
/* 初始化并执行curl请求 */
$ch = curl_init();
curl_setopt_array($ch, $opts);
$data = curl_exec($ch);
$error = curl_error($ch);
return $data;
}
?>
```
```
~~~
/**
* curl请求指定url (get)
* @param $url
* @param array $data
* @return mixed
*/
function curl($url, $data = [])
{
// 处理get数据
if (!empty($data)) {
$url = $url . '?' . http_build_query($data);
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//这个是重点。
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
/**
* curl请求指定url (post)
* @param $url
* @param array $data
* @return mixed
*/
function curlPost($url, $data = [])
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
~~~
```
- PHP收集
- 1、精准获取文件的MIME类型
- 2、获取指定内容的第一张图片做封面
- 3、生成二维码
- 4、HTTP请求(请求微信token有用)
- 5、SQL的安装与卸载、执行
- 6、stdclass 对象转数组
- 7、php调用restfull API
- 8、二维数据排序
- 9、多维数组合并
- 10、API签名与验证
- 11、删除一维数据指定key或者允许
- 12、字符串替换、截取
- 13、返回带数据与状态与状态语的json函数封装
- 14、EXCEL上传下载封装
- 15、循环删除指定目录下的文件与文件夹、创建指定文件夹
- 16、强制把日期或者时间戳转星期几
- 17、检测字符串是否包含某字符串
- 18、获取中文字符拼音首字母
- 19、判断手机、邮箱格式正确否、隐藏手机号码
- 20、TP5把图片、视频、文件上传封装
- 21、生成商品编号/货号/订单号/小票号
- 22、高精度数值添加
- 23、加解密字符串、可逆加解密
- 24、编辑器图片上传验证
- 25、转义单引号
- 26、字符串去重
- 27、Base64加解密
- 28、将空内容设置为特定内容
- 29、判断访问来源
- 30、将字符串转换为时间戳,解决部分服务器时间不能超过2038的问题
- 31、驼峰命名转下划线命名
- 32、写入日志 (使用tp自带驱动记录到runtime目录中
- 33、隐藏敏感字符、隐藏部分字符
- 34、获取全局唯一标识符、生成随机数
- 35、过滤emoji表情
- 36、无限分类 数组转 树形结构
- 37、递归生成分类栏目结构
- 38、判断是否是json字符串
- 39、计算时间差(优化友好时间体验)、格式化月份
- 40、生成缩略图
- 41、敏感词过滤
- 42、获取当前类方法
- 43、取文件目录列表,该方法返回数组
- 44、防XSS注入、SQL盲注入
- JS收集
- 1、获取图片真实宽高
- 2、禁用F12与鼠标右键事件
- 3、安卓播放视频结束出现广告
- 4、TP手机端分页封装
- 5、flex布局,多行最后一行向左排列
- 6、判断移动终端内核
- 7、判断IE浏览器内核
- 8、设置主页与加入收藏
- 9、解决H5微信转发分享特殊符号处理
- CSS收集
- 1、移动IOS的按钮默认样式去除
- 2、超出行数隐藏显示缩略号
- 3、清除浮动
- 4、背景图透明度兼容
- HTML收集
- 1、列表视频
- 小程序
- 1、请求封装
- 2、插件收集
- 问题记录集