123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- <?php
- // +----------------------------------------------------------------------
- // | ThinkPHP [ WE CAN DO IT JUST THINK ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
- // +----------------------------------------------------------------------
- // | Author: 流年 <liu21st@gmail.com>
- // +----------------------------------------------------------------------
- // 应用公共文件
- header('Content-Type:text/html;Charset=utf-8');
- /**
- * 保存后台用户行为
- * @param string $remark 日志备注
- */
- function insert_admin_log($remark)
- {
- db('user_log')->insert([
- 'user_id' => session('admin_auth.id'),
- 'uname' => session('admin_auth.uname'),
- 'useragent' => request()->server('HTTP_USER_AGENT'),
- 'ip' => request()->ip(),
- 'url' => request()->url(true),
- 'method' => request()->method(),
- 'type' => request()->type(),
- 'param' => json_encode(request()->param()),
- 'remark' => $remark,
- 'create_time' => time(),
- ]);
- }
- /**
- * @param $str
- * @return string
- * 驼峰命名法转下划线风格
- */
- function to_under_score($str)
- {
- $array = array();
- for ($i = 0; $i < strlen($str); $i++) {
- if ($str[$i] == strtolower($str[$i])) {
- $array[] = $str[$i];
- } else {
- if ($i > 0) {
- $array[] = '-';//想转什么就可以自己设置
- }
- $array[] = strtolower($str[$i]);
- }
- }
- $result = implode('', $array);
- return $result;
- }
- /**
- * 获取用户真实 IP
- */
- function getIP()
- {
- static $realip;
- if (isset($_SERVER)){
- if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
- $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
- } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
- $realip = $_SERVER["HTTP_CLIENT_IP"];
- } else {
- $realip = $_SERVER["REMOTE_ADDR"];
- }
- } else {
- if (getenv("HTTP_X_FORWARDED_FOR")){
- $realip = getenv("HTTP_X_FORWARDED_FOR");
- } else if (getenv("HTTP_CLIENT_IP")) {
- $realip = getenv("HTTP_CLIENT_IP");
- } else {
- $realip = getenv("REMOTE_ADDR");
- }
- }
- return $realip;
- }
- //获取城市所在天气情况
- function tianqi($chengshi)
- {
- $url = 'http://wthrcdn.etouch.cn/weather_mini?city='.urlencode($chengshi);
- $html = file_get_contents($url);
- $jsondata = gzdecode($html);
- $data=json_decode($jsondata,true);
- $arr=array();
- $arr['chengshi']=$data['data']['city'];
- $dangtian=$data['data']['forecast'][0];
- $arr['gaowen']= str_replace("高温 ",null,$dangtian['high']);
- $arr['diwen']= str_replace("低温 ",null,$dangtian['low']);
- $arr['tianqi']=$dangtian['type'];
- $arr['fengxiang'] = $dangtian['fengxiang'];
- $arr['time'] =date("Y-m-d H:i:s");
- return $arr;
- }
- /**
- * 检测管理员是否登录(防止用户重复登录)
- * @return integer 0/管理员ID
- */
- function is_admin_login()
- {
- $admin = session('admin_auth');
- if (empty($admin)) {
- return 0;
- } else {
- return session('admin_auth_sign') == data_auth_sign($admin) ? $admin['id'] : 0;
- }
- }
- /**
- * 数据签名认证
- * @param array $data 被认证的数据
- * @return string 签名
- */
- function data_auth_sign($data)
- {
- // 数据类型检测
- if (!is_array($data)) {
- $data = (array)$data;
- }
- ksort($data); // 排序
- $code = http_build_query($data); // url编码并生成query字符串
- $sign = sha1($code); // 生成签名
- return $sign;
- }
|