PHP常用的封装方法-单文件版

PHP常用的封装方法-单文件版

是滑稽啊
2022-05-10 / 0 评论 / 128 阅读 / 正在检测是否收录...

检查文件是否存在,不存在则创建

/**
* [create_file 创建文件]
* @param string $filename [文件名]
* @return [type][true|false]
*/
function createFile(string $filename) {

    if (file_exists($filename)) {
        return false;
    }

    // 判断文件类型是否为目录, 如果不存在则创建
    if (!file_exists(dirname($filename))) {
        mkdir(dirname($filename), 0777, true);
    }

    if(touch($filename)) {
        return true;
    }
    return false;
}

检查文件夹是否存在,不存在则创建

//没有则创建文件目录
function mkdirs($dir, $mode = 0777)
{

    if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;
    if (!mkdirs(dirname($dir), $mode)) return FALSE;
    return @mkdir($dir, $mode);
}

CURL的get请求

/**
 * curl get网络请求
 * @param $url
 * @return bool|string
 */
function http_request_get($url)
{
    $curl = curl_init();
    //设置抓取的url
    curl_setopt($curl, CURLOPT_URL, $url);
    //设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, 1);
    //设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //执行命令
    $data = curl_exec($curl);
    //关闭URL请求
    curl_close($curl);
    return $data;
}

CURL的post请求

/**
 * curl http post请求接口
 */
function http_request($url, $data = array(), $header = array(), $out_header = false)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $out_header ? curl_setopt($curl, CURLOPT_HEADER, 1) : '';
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    isset($header) ? curl_setopt($curl, CURLOPT_HTTPHEADER, $header) : '';
//    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:'));
    // POST数据
    curl_setopt($curl, CURLOPT_POST, 1);
    // 把post的变量加上
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    $output = curl_exec($curl);
    curl_close($curl);
    return $output;
}

file_get_contents方式post请求

/**
 * 发送post请求
 */
function send_post($url, $post_data) {
    $options = array(
        'http' => array(
            'method' => 'POST',
            'header' => 'Content-type:application/json; charset=utf-8',
            'content' => json_encode($post_data),
            'timeout' => 15 * 60 // 超时时间(单位:s)
        )
    );
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    return $result;
}

写入日志

/**
* [logg 写入日志]
* @param string $name [日志标题]
* @param string/array $data [打印数据]
* @return [type][true|false]
*/
function Logg($name='', $data=''){
    
    $filename = 'public/debug.log';
    
    createFile($filename);
    
    $time = date('Y-m-d H:i:s', time());
    $data = array(
        'title' => $name,
        'create_time' => time(),
        'data' => $data
        );
    $data = 'TIME: ' . $time .' | '. json_encode($data) . ' | ' . PHP_EOL;
    
    file_put_contents($filename, $data, FILE_APPEND);
    
    return true;
}

获取微信access_token

function accessToken() {
    
    $url = 'https://api.weixin.qq.com/cgi-bin/token';
    
    $grant_type = 'client_credential';
    $appid = APPID;
    $secret = SOURCEID;
    
    $url =  $url . "?grant_type={$grant_type}&appid={$appid}&secret={$secret}";

    $result = http_request_get($url);
    $result = substr($result,strpos($result,'{'));
    $result = json_decode($result,true);

    if(empty($result['errcode']) 
    || !empty($result['access_token']))
    {
        return $result['access_token'];
    } else {
        return false;
    }
}

生成随机字符(数字+字母)-6位

echo base_convert(mt_rand(100000000,999999999),10,36);
0

评论

博主关闭了所有页面的评论