php技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > PHP编程 > php技巧 > PHP方法封装

PHP常见方法封装总结

作者:PHP开源社区

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

您可能感兴趣的文章:
阅读全文