PHP常见方法封装
1.get请求
function get_curl($url, $timeout = 5) {
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true );
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$result = curl_exec( $ch );
curl_close($ch);
return $result;
}
2.post请求
function post_curl($url, $data, $timeout = 5) {
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true );
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$result = curl_exec( $ch );
curl_close($ch);
return $result;
}
3.随机字符串
function random_str($len=10, $type=1){
switch($type){
case 2:
$chars='0123456789';
break;
case 3:
$chars='abcdefghijklmnopqrstuvwxyz';
break;
case 4:
$chars='ABDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case 5:
$chars='abcdefghijklmnopqrstuvwxyzABDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case 6:
$chars='abcdefghijklmnopqrstuvwxyz0123456789';
break;
default:
$chars='abcdefghijklmnopqrstuvwxyzABDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
break;
} $str = '';
for ( $i = 0; $i <$len; $i++ ){
$str .= $chars[ mt_rand(0, strlen($chars) - 1) ];
}
return $str;
}
4.返回json数据
function json_back($data, $is_exit = true) {
$callback = $_GET['callback'] ?? '';
if ($callback) {
echo '' . $callback . "(" . json_encode($data, JSON_UNESCAPED_UNICODE) . ")";
} else {
echo json_encode($data, JSON_UNESCAPED_UNICODE);
}
if ($is_exit) exit();
}
5.数据过滤
function check_data($data){
if(is_array($data)){
foreach($data as $key => $v){
$data[$key] = $this->check_data($v);
}
}else{
$data = trim($data);
$data = strip_tags($data);
$data = htmlspecialchars($data);
$data = addslashes($data);
}
return $data;
}
6.重定向
function redirect($url = 'https://blog.csdn.net/weixin_41635750'){
if (!headers_sent()) {
header("Location: {$url}");
exit();
}else{
$str = "<meta http-equiv='Refresh' content='0;URL={$url}'>";
exit($str);
}
}
7.获取客户端ip
function get_real_ip() {
if(@$_SERVER["HTTP_ALI_CDN_REAL_IP"]){
$ip = $_SERVER["HTTP_ALI_CDN_REAL_IP"];
}
elseif (@$_SERVER["HTTP_X_FORWARDED_FOR"] ?: false) {
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
$ips = explode(',', $ip);
$ip = $ips[0];
} elseif (@$_SERVER["HTTP_CDN_SRC_IP"] ?: false) {
$ip = $_SERVER["HTTP_CDN_SRC_IP"];
} elseif (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
} elseif (getenv('HTTP_X_FORWARDED')) {
$ip = getenv('HTTP_X_FORWARDED');
} elseif (getenv('HTTP_FORWARDED_FOR')) {
$ip = getenv('HTTP_FORWARDED_FOR');
} elseif (getenv('HTTP_FORWARDED')) {
$ip = getenv('HTTP_FORWARDED');
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$ip = str_replace(array('::ffff:', '[', ']'), array('', '', ''), $ip); return $ip;
}
PHP常见方法封装的更多相关文章
- python全栈开发day29-网络编程之socket常见方法,socketserver模块,ftp作业
一.昨日内容回顾 1.arp协议含义 2.子网,子网掩码 3.两台电脑在网络中怎么通信的? 4.tcp和udp socket编码 5.tcp和udp协议的区别 6.tcp三次握手和四次挥手,syn洪攻 ...
- 前端js重组树形结构数据方法封装
不知道大家平时工作中,有没有遇到这样一种情况:后端接口返回的数据,全都是一维的数组,都是平铺直叙式的数据,业务需求却要你实现树形结构的功能.那么,针对这种情况该怎么办呢?是跟后台好好沟通一下呢,还是沟 ...
- js浮点数保留位数方法封装
大家在平时业务中应该经常跟小数打交道吧,有没有被小数点的保留位数问题搞得头疼啊.比如,保留一位小数,保留俩位小数,保留三位小数,向上取整.四舍五入等等. 而我最近在项目中正好遇到类似的问题:有的地方要 ...
- C#图片处理常见方法性能比较
C#图片处理常见方法性能比较 来自:http://www.cnblogs.com/sndnnlfhvk/archive/2012/02/27/2370643.html 在.NET编程中,由于GDI ...
- C#常用字符串加解密方法封装
C#中常用的字符串加密.解密方法封装,包含只加密但不解密的方法.收藏起来备用. //方法一 //须添加对System.Web的引用 //using System.Web.Security; /// & ...
- window对象中的常见方法
<body><!-- window对象中的常见方法--><script type="text/javascript"> var timeid; ...
- python socket 常见方法及 简单服务/客户端
socket 常见方法: 补充说明:what is file descriptor? 文件描述符是什么? 参考(http://stackoverflow.com/questions/8191905/w ...
- VBS操作Excel常见方法
VBS操作Excel常见方法 作者: 字体:[增加 减小] 类型:转载 时间:2009-11-13我要评论 VBS控制Excel常见方法,需要的朋友可以参考下. dim oExcel,oWb,oShe ...
- 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释
在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 ...
- C#方法封装与重构
C#作为一个完全面向对象的语言,有个特性很重要但是往往会不重视,而不重视的结果就会造成代码杂乱难以解读.维护.这个特性就是封装. 这里不是大谈C#的封装,我只讲一个,关于方法封装的一些问题. ...
随机推荐
- .net core操作MongoDB
前言 现实中认识的一个搞java(百万富婆)的大佬,已经转行做抖音主播了,搞技术的只能赶在年前再水一篇博客,不足之处欢迎拍砖,以免误人子弟,呔,真是太难受了 环境准备 .net core 3.1 Mo ...
- P8855 [POI2002]商务旅行
简要题意 给出一个 \(N\) 个节点的树和一个长度为 \(M\) 的序列 \(S\).你需要从 \(1\) 出发,依次经过 \(S\) 中的所有点,求至少需要经过的边数. \(1 \le N \le ...
- appium如何连接多台设备
我们在做app自动化的时候,若要考虑兼容性问题,需要跑几台设备,要是一台一台的跑比较耗 时,因此需要考虑使用多线程来同时操作多台设备. 1.我们拿两台设备来模拟操作下,使用:adb devices查看 ...
- bugku-source-wp详解
bugku-source-wp详解 F12先看源代码 base64解码 提交flag 发现这个flag是假的 根据提示打开kali直接扫 命令:gobuster dir -u http://114.6 ...
- AJAX容易出错地方,错误处理
myajax.js //创建路由器对象 const express=require('express'); //引入连接池模块 const pool=require('../pool.js'); ...
- 1.5万字长文:从 C# 入门 Kafka
目录 1, 搭建 Kafka 环境 安装 docker-compose 单节点 Kafka 的部署 Kafka 集群的部署 2, Kafka 概念 基本概念 关于 Kafka 脚本工具 主题管理 使用 ...
- Unity之GPS定位(腾讯sdk)
Unity之GPS定位(腾讯sdk) 目录 Unity之GPS定位(腾讯sdk) 前言 Unity版本及使用插件 正题 编写脚本 Run运行, 跑起来就行,具体要什么,去相关类找就好了. 没有腾讯地图 ...
- Unity_UIWidgets - 组件AppBar
Unity_UIWidgets - 组件AppBar AppBar 构造 构造png观看 使用代码 使用效果 AppBar使用结束 结语 图标Icon QQ 今日无推荐 Unity_UIWidgets ...
- 线程基础知识17 Quene
1 ConcurrentLinkedQueue 1.1 简介 它是一个基于链接节点的无界线程安全队列.此队列按照 FIFO(先进先出)原则对元素进行排序. 新的元素插入到队列的尾部,队列获取操作从队列 ...
- Linux问题--docker启动mysql时提示3306端口被占用(kill不掉3306端口)
使用kill -9 杀掉mysqld服务时一直失败. mysql启动时会启动mysqld和mysqld_safe两个进程,当使用kill -9杀掉mysqld进程时,mysqld_safe会自动重新启 ...