请选择 进入手机版 | 继续访问电脑版
×
热搜词

QQ登录

只需一步,快速开始

封装好的一些PHP方法,低阶修士可以直接拿去用

封装好的一些PHP方法,没有框架的低阶修士可以直接拿去用,可以为此新建一个php文件,在需要使用里面的方法时引入即可。

[PHP] 纯文本查看 复制代码
<?php

    //获取客户端的IP地址
    function getClientIP(){
        //getenv()函数定义:取得系统的环境变量
        if (getenv("HTTP_CLIENT_IP")) {
            $ip = getenv("HTTP_CLIENT_IP");
        } elseif (getenv("HTTP_X_FORWARDED_FOR")) {
            $ip = getenv("HTTP_X_FORWARDED_FOR");
        } elseif (getenv("REMOTE_ADDR")) {
            $ip = getenv("REMOTE_ADDR");
        } else {
            $ip = "Unknow";
        }
        if ($ip == '::1'){
            //本地
            $ip = '127.0.0.1';
        }
        return $ip;
    }

    //获取服务器的IP地址
    function getServerIp(){
        $server_ip = gethostbyname($_SERVER["SERVER_NAME"]);
        return $server_ip;
    }

    //下载文件
    function file_Download($file_url , $file_dir , $file_name = null){
        if($file_name == null){
            $file_name = basename($file_url);
        }
        if(file_put_contents($file_dir . $file_name , file_get_contents($file_url)) != false){
            return true;
        }
        return false;
    }

    //获取字符串中的网址
    function getUrl($str){
        preg_match_all('/http:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*/',$str,$array2);
        preg_match_all('/https:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*/',$str,$array1);
        $array3 = array($array1,$array2);
        
        return $array3;
    }

    //通过度仙门网的API发送邮件
    function DXM_SendMail($mail_address , $mail_username , $mail_subject , $mail_text){
        $token = $GLOBALS["_CONFIG"]["main"]["mail"]["api_token"];
        return file_get_contents("https://www.duxianmen.com/api/mail/index.php?mail_address=".$mail_address."&mail_subject=".urlencode($mail_subject)."&username=".urlencode($mail_username)."&mail_text=".urlencode($mail_text)."&token=".$token);
    }

    //根据时间输出问候内容
    function getGreet($time = null){
        if(is_null($time)){
            $time = time();
        }
        date_default_timezone_set('Asia/Shanghai');
        $h = date("H",$time);
        if($h<11) return "Hi!早上好~";
        else if($h<13) return "Hi!中午好~";
        else if($h<17) return "Hi!下午好~";
        else return "Hi!晚上好~";
    }

    //获取文件后缀名
    function get_file_extension($file_name) {
        return substr(strrchr($file_name,'.'),1);
    }

    //基于exec方法执行多个命令
    function MultiLineCommand($CommandGroup){
        if(!is_array($CommandGroup)){
            return YaoGuang\ErrorGroup::ERROR_NOT_ARRAY;
        }
        foreach($CommandGroup as $key => $value){
            $command = $value;
            exec($command , $output , $code);
            $return[$key]["return"] = $output;
            $return[$key]["code"] = $code;
            unset($output);
            unset($code);
        }
        return $return;
    }

    //以POST请求URL
    function file_post_contents($url , $data){

        $curl = curl_init(); // 启动一个CURL会话

        curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
        curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); // 模拟用户使用的浏览器
        //curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
        //curl_setopt($curl, CURLOPT_AUTOREFERER, 1);  // 自动设置Referer
        curl_setopt($curl, CURLOPT_POST, 1);       // 发送一个常规的Post请求
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);  // Post提交的数据包x
        curl_setopt($curl, CURLOPT_TIMEOUT, 30);     // 设置超时限制 防止死循环
        curl_setopt($curl, CURLOPT_HEADER, 0);      // 显示返回的Header区域内容
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  // 获取的信息以文件流的形式返回

        //发送请求
        $tmpInfo = curl_exec($curl);
        //关闭会话
        curl_close($curl);
        return $tmpInfo;
    }

    //给文件大小加上单位,且精确到两位小数 (请传入经过filesize方法处理的数据).
    function format_filesize($size){
        $length = strlen($size);
        if($length < 4){
            $return = array($size , "B");
        }elseif($length < 8){
            $return = array($size/1024 , "KB");
        }elseif($length < 12){
            $return = array($size/1048576 , "MB");
        }elseif($length < 16){
            $return = array($size/1073741824 , "GB");
        }elseif($length < 20){
            $return = array($size/1099511627776 , "TB");
        }elseif($length < 24){
            $return = array($size/1125899906842624 , "PB");
        }else{
            $return = false;
        }
        if($return != false){
            $return[0] = number_format($return[0] , 2);
        }
        return $return;
    }

    //将文件以流的形式输出到浏览器,建议不要输出大文件
    function fileflow_download($file_path , $file_name = null){
        //源文件名
        $source_file_name = basename($file_path);
        if(is_null($file_name)){
            $file_name = $source_file_name;
        }
        //检查文件是否存在
        if(!file_exists($file_path)){
            http_response_code(404);
        }else{
            //定义HTTP返回头
            header ("Content-type: application/octet-stream");
            header ("Accept-Ranges: bytes");
            header ("Accept-Length: ".filesize($file_path));
            header ("Content-Disposition: attachment; filename=".$file_name);
            //以只读和二进制模式打开文件
            $file = fopen($file_path , "rb");
            //读取文件内容并直接输出到浏览器
            echo fread($file , filesize($file_path));
            fclose($file);
        }
    }

    //获取HTTP表头数据
    function get_all_headers(){
        $headers = array();
        foreach($_SERVER as $key => $value){
            if(substr($key, 0, 5) === 'HTTP_'){
                $key = substr($key, 5);
                $key = str_replace('_', ' ', $key);
                $key = str_replace(' ', '-', $key);
                $key = strtolower($key);
                $headers[$key] = $value;
            }
        }
        return $headers;
    }

    //发送使用curl发送http请求,可自定义header请求头和post数据
    function tocurl($url , $header , $content){
        $ch = curl_init();
        if(substr($url , 0 , 5) == 'https'){
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content));
        $response = curl_exec($ch);
        if($error = curl_error($ch)){
            die($error);
        }
        curl_close($ch);
        return $response;
    }

    //获取URL的状态码
    function get_http_state($url){
        $ch = curl_init();
        if(substr($url , 0 , 5) == 'https'){
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        }
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, TRUE);
        curl_setopt($ch, CURLOPT_NOBODY, TRUE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $head = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        return $httpCode;
    }

度仙门网 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与度仙门网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和度仙门网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、度仙门网管理员和版主有权不事先通知发贴者而删除本文

帖子地址: 

玄元一墨

写了 246 篇文章,拥有下品灵石 9544 枚,中品灵石 11417 枚,上品灵石 10002 枚,被 4 人关注

欢迎访问度仙门网!请在论坛右上角的个人设置中修改你的个性签名!
踩
回复

使用道具

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

Copyright © 2018-, Duxian studio.

返回顶部