常用公共函数库(验证mac地址、判断ip所属网段、创建文件夹、读取文件、获取移动客户端类型等)

<?php 

/**
 * home模块公共库文件
 * 主要定义公共函数库
 */
/**
 * [mac_valid description]
 * @param  [type] $mac [description]
 * @return [type]      [description]
 */
  function mac_valid($mac){
            if(preg_match("/^[A-F0-9]{2}:[A-F0-9]{2}:[A-F0-9]{2}:[A-F0-9]{2}:[A-F0-9]{2}:[A-F0-9]{2}$/i", $mac)){
                return true;
            }else{
                return false;
            }
        }

function get_device_type(){

      $agent = strtolower($_SERVER['HTTP_USER_AGENT']);

      $type = 'other';

      if(strpos($agent, 'iphone') || strpos($agent, 'ipad')){

              $type = 'ios';

      }

      if(strpos($agent, 'android')){
            $type = 'android';
      }

          return $type;

}

 

/**
     * 保存文件
     * 
     * @param string $fileName 文件名(含相对路径)
     * @param string $text 文件内容
     * @return boolean 
     */
    function saveFile($fileName, $text) {
        if (!$fileName || !$text)
            return false;

        if (makeDir(dirname($fileName))) {
            if ($fp = fopen($fileName, "w")) {
                if (@fwrite($fp, $text)) {
                    fclose($fp);
                    return true;
                } else {
                    fclose($fp);
                    return false;
                } 
            } 
        } 
        return false;
    } 

    /**
     * 连续创建目录
     * 
     * @param string $dir 目录字符串
     * @param int $mode 权限数字
     * @return boolean 
     */
    function makeDir($dir, $mode = "0777") {
        if (!dir) return false;

        if(!file_exists($dir)) {
            return mkdir($dir,$mode,true);
        } else {
            return true;
        }
        
    }


function my_scandir($dir)
{
    $files = array();
    if ( $handle = opendir($dir) ) {
        while ( ($file = readdir($handle)) !== false )
        {
            if ( $file != ".." && $file != "." )
            {
                if ( is_dir($dir . "/" . $file) )
                {
                    $files[$file] = my_scandir($dir . "/" . $file);
                }
                else
                {
                    $files[] = $file;
                }
            }
        }
        closedir($handle);
        return $files;
    }
}
	 
function my_scandir1($dir)
{
    $files = array();
    $dir_list = scandir($dir);
    foreach($dir_list as $file)
    {
        if ( $file != ".." && $file != "." )
        {
            if ( is_dir($dir . "/" . $file) )
            {
                $files[$file] = my_scandir1($dir . "/" . $file);
            }
            else
            {
                $files[] = $file;
            }
        }
    }
     
    return $files;
}
/**
 * 获取上传目录文件
 * @param  [type] $dir [description]
 * @param  [type] $url [description]
 * @return [type]      [description]
 */
function get_update_dir_file($dir,$url){
     $dh = @opendir($dir);             //打开目录,返回一个目录流
     $return = array();
          while($file = @readdir($dh)){     //循环读取目录下的文件
             if($file!='.' and $file!='..'){
              $path = $dir.'/'.$file;     //设置目录,用于含有子目录的情况
              if(is_dir($path)){
          }elseif(is_file($path)){
              $filesize[] =  round((filesize($path)/1024),2);//获取文件大小
              $filename[] = $path;//获取文件名称                     
              $filetime[] = date("Y-m-d H:i:s",filemtime($path));//获取文件最近修改日期    
   
              $return[] =  $url.'/'.$file;
          }
        }
    }  
          @closedir($dh);             //关闭目录流
          //array_multisort($filesize,SORT_DESC,SORT_NUMERIC, $return);//按大小排序
          //array_multisort($filename,SORT_DESC,SORT_STRING, $return);//按名字排序
          array_multisort($filetime,SORT_DESC,SORT_STRING, $return);//按时间排序
          return $return;               //返回文件
}	
/**
 * 获取软件版本号
 * @param  [type] $filename [description]
 * @return [type]           [description]
 */
function get_version_num ($filename){
    $script_name = basename($filename);
    $version_name = explode('_', $script_name)[1];
    $last_pos = strrpos($version_name,'.');
    $version = substr($version_name, 0, $last_pos);
    return $version;
}


 ?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值