PHP常见方法封装总结

 更新时间:2022-07-25 11:09:26   作者:佚名   我要评论(0)

目录1.get请求2.post请求3.随机字符串4.返回json数据5.数据过滤6.重定向7.获取客户端ip1.get请求
function get_curl($url, $timeout = 5) {

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常见方法封装总结的文章就介绍到这了,更多相关PHP方法封装内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • php生出随机字符串
  • php简单随机字符串生成方法示例
  • 通过PHP实现获取访问用户IP
  • PHP获取真实客户端的真实IP
  • PHP数据过滤的方法
  • php curl发起get与post网络请求案例详解

相关文章

  • php性能优化进阶不要在for循环中操作DB

    php性能优化进阶不要在for循环中操作DB

    目录前言场景说明解题思路核心代码示例性能对比反思总结前言 如何提高程序运行速度,减轻服务器压力是服务端开发必须面对的一个问题。 简单且
    2022-07-25
  • PHP常见方法封装总结

    PHP常见方法封装总结

    目录1.get请求2.post请求3.随机字符串4.返回json数据5.数据过滤6.重定向7.获取客户端ip1.get请求 function get_curl($url, $timeout = 5) {
    2022-07-25
  • PHP实现生成二维码的示例代码

    PHP实现生成二维码的示例代码

    目录前言1、目前有2种类型的二维码2、用户扫描带场景值二维码时,可能推送以下两种事件3、创建二维码ticket4、临时二维码请求说明5、永久二维
    2022-07-25
  • PHP操作XML的教程详解

    PHP操作XML的教程详解

    php操作XML <?xml version="1.0" encoding="utf-8"?> <article> <item> <title size="1">title1</title> <content>cont
    2022-07-25
  • PHP实现抽奖系统的示例代码

    PHP实现抽奖系统的示例代码

    目录一、随机抽奖二、概率抽奖三、内定抽奖一、随机抽奖 随机抽奖当然是最公平的抽奖,就是当用户抽奖时随机返回抽奖结果 这种结果完全随机,
    2022-07-25
  • PHP一文带你搞懂游戏中的抽奖算法

    PHP一文带你搞懂游戏中的抽奖算法

    目录前言一、初始化奖品二、谢谢参与三、过滤抽奖、如充值条件四、重组概率五、进行抽奖六、过滤回调七、最终抽奖结果八、抽奖封装成类前言
    2022-07-25
  • PHP实现常见排序算法的示例代码

    PHP实现常见排序算法的示例代码

    目录1、冒泡排序2、选择排序3、快速排序4、插入排序补充1、冒泡排序 两两相比,每循环一轮就不用再比较最后一个元素了,因为最后一个元素已经
    2022-07-25
  • 利用PHP?POST临时文件机制实现任意文件上传的方法详解

    利用PHP?POST临时文件机制实现任意文件上传的方法详解

    目录原理如何获取临时文件名$_FILESphpinfoglob如何利用该文件组合请求延长临时文件存在时间参考原理 向 PHP 发送 Post 数据包,如果数据包中
    2022-07-25
  • PHP中数组处理函数的使用方法详解

    PHP中数组处理函数的使用方法详解

    目录一、键、值操作函数二、数组元素个数有关的函数三、使用回调函数处理数组的函数四、数组的排序函数五、拆分,合并,分解,结合数组六、获
    2022-07-25
  • 基于PHP实现邮件实时通知功能

    基于PHP实现邮件实时通知功能

    目录一、安装环境二、下载 三、 邮箱设置四、php发送邮件五、php框架中使用一、安装环境 PHPMailer 需要 PHP 的 sockets 扩展支持 另外登录
    2022-07-25

最新评论