123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- <?php
- * 将ip地址转为整数
- */
- function print_json($data)
- {
- echo json_encode($data);
- }
- function inet_aton($ip = '')
- {
- $array = array();
- $ipn = 0;
- if ($ip != '') {
- $array = explode('.', $ip);
- $arr = array_reverse($array);
- $dd = 256;
- $ipn = 0;
- for ($i = 0; $i < 4; $i ++) {
- $ipn += $arr[$i]*pow($dd, $i);
- }
- }
- return $ipn;
- }
- * inet_ntoa()
- * 将数据库取出来的ip整数形转为ip地址
- * 参数说明 $dd=256;第一次对256取余活的ip地址第4个,第二次活的第三个,依次类推
- */
- function inet_ntoa($ip = '0')
- {
- $array=array();
- $dd=256;
- for ($i=4; $i>0; $i--) {
- $array[$i] = $ip%$dd;
- $ip = intval(floor($ip/$dd));
- }
- return $array[1].'.'.$array[2].'.'.$array[3].'.'.$array[4];
- }
- * 数组去首尾空格
- */
- function trim_value(&$value)
- {
- if (!is_array($value)) {
- $value = trim($value);
- } else {
- $value = trim_array($value);
- }
- }
- function trim_array($arr)
- {
- array_walk($arr, 'trim_value');
- return $arr;
- }
- function browser_info()
- {
- if (!empty($_SERVER['HTTP_USER_AGENT'])) {
- $br = $_SERVER['HTTP_USER_AGENT'];
- if (preg_match('/MSIE/i', $br)) {
- $br = 'MSIE';
- } elseif (preg_match('/Firefox/i', $br)) {
- $br = 'Firefox';
- } elseif (preg_match('/Edge/i', $br)) {
- $br = 'Edge';
- } elseif (preg_match('/Chrome/i', $br)) {
- $br = 'Chrome';
- } elseif (preg_match('/Safari/i', $br)) {
- $br = 'Safari';
- } elseif (preg_match('/Opera/i', $br)) {
- $br = 'Opera';
- } else {
- $br = 'Other';
- }
- return $br;
- } else {
- return 'unknow';
- }
- }
- function os_info()
- {
- if (!empty($_SERVER['HTTP_USER_AGENT'])) {
- $os = $_SERVER['HTTP_USER_AGENT'];
- if (preg_match('/win/i', $os)) {
- $os = 'Windows';
- } elseif (preg_match('/mac/i', $os)) {
- $os = 'MAC';
- } elseif (preg_match('/linux/i', $os)) {
- $os = 'Linux';
- } elseif (preg_match('/unix/i', $os)) {
- $os = 'Unix';
- } elseif (preg_match('/bsd/i', $os)) {
- $os = 'BSD';
- } else {
- $os = 'Other';
- }
- return $os;
- } else {
- return 'unknow';
- }
- }
- function make_tree($list, $pk = 'id', $pid = 'pid', $child = 'child', $root = 0)
- {
- $tree=array();
- foreach ($list as $key => $val) {
- if ($val[$pid]==$root) {
- unset($list[$key]);
- if (!empty($list)) {
- $child = make_tree($list, $pk, $pid, $child, $val[$pk]);
- if (!empty($child)) {
- $val['child']=$child;
- } else {
- $val['child']= array();
- }
- }
- $tree[]=$val;
- }
- }
- return $tree;
- }
- function obj_tree($list, $pk = 'id', $pid = 'pid', $child = 'child', $root = 0)
- {
- $tree=array();
- foreach ($list as $key => $val) {
- if ($val->pid == $root) {
- unset($list->$key);
- if (!empty($list)) {
- $child = obj_tree($list, $pk, $pid, $child, $val[$pk]);
- if (!empty($child)) {
- $val->child=$child;
- } else {
- $val->child = array();
- }
- }
- $tree[]=$val;
- }
- }
- return $tree;
- }
- * 生成缩略图
- */
- function make_thumb($filename, $width = 364, $height = 168, $mode = 6)
- {
- $file = ROOT_PATH . 'public' . DS . 'uploads'. DS . $filename;
-
- $ext = pathinfo($file, PATHINFO_EXTENSION);
- $thumbname = str_replace('.' . $ext, '', $filename);
- $thumbname .='_thumb.' . $ext;
- $image = \think\Image::open($file);
- $result = $image->thumb($width, $height, $mode)->save(ROOT_PATH . 'public' . DS . 'uploads'. DS . $thumbname);
-
- if ($result) {
- return $thumbname;
- } else {
- return false;
- }
- }
- * 使用递归遍历获取文件夹的大小
- */
- function get_dir_size($dirname)
- {
- static $tot;
- $ds = opendir($dirname);
- while ($file = readdir($ds)) {
-
- $path = $dirname . "/" . $file;
-
- if ($file != "." && $file != "..") {
- if (is_dir($path)) {
- get_dir_size($path);
- } else {
- $tot += filesize($path);
- }
- }
- }
- return $tot;
- }
- * 递归删除文件夹
- */
- function deldir($path)
- {
-
- if (is_dir($path)) {
-
- $p = scandir($path);
- foreach ($p as $val) {
-
- if ($val != "." && $val != "..") {
-
- if (is_dir($path . $val)) {
-
- deldir($path . $val . '/');
-
- @rmdir($path . $val . '/');
- } else {
-
- unlink($path . $val);
- }
- }
- }
- }
- }
- * 获取指定月份的第一天开始和最后一天结束的时间戳
- *
- * @param int $y 年份 $m 月份
- * @return array(本月开始时间,本月结束时间)
- */
- function mFristAndLast($y = "", $m = ""){
- if ($y == "") $y = date("Y");
- if ($m == "") $m = date("m");
- $m = sprintf("%02d", intval($m));
- $y = str_pad(intval($y), 4, "0", STR_PAD_RIGHT);
-
- $m>12 || $m<1 ? $m=1 : $m=$m;
- $firstday = strtotime($y . $m . "01000000");
- $firstdaystr = date("Y-m-01", $firstday);
- $lastday = strtotime(date('Y-m-d 23:59:59', strtotime("$firstdaystr +1 month -1 day")));
-
- return [ "firstday" => $firstday, "lastday" => $lastday];
- }
|