PHP开发中常用类库

PHP常用类库

数组类
class libArray
{
    /**
     * 多维数组合并
     * @return array
     */
    public static function merge ()
    {
        $args = func_get_args();
        $array = [];
        foreach ( $args as $arg ) {
            if ( is_array($arg) ) {
                foreach ( $arg as $k => $v ) {
                    if ( is_array($v) ) {
                        $array[$k] = isset($array[$k]) ? $array[$k] : [];
                        $array[$k] = self::merge($array[$k], $v);
                    } else {
                        $array[$k] = $v;
                    }
                }
            }
        }
        return $array;
    }

    /**
     * 多维to一维
     * [1=>['a'=>'v1']] to ['1|a'=>'v1']
     * @param array $array
     * @param string $delimiter
     * @param string $key
     * @return array
     */
    public static function mTo1 (array $array, $delimiter = '|', $key = '')
    {
        $data = [];
        if ( !is_array($array) ) {
            return $data;
        }
        foreach ( $array as $k => $v ) {
            $keyNew = trim($key.$delimiter.$k, $delimiter);
            if ( is_array($v) ) {
                $data = array_merge($data, self::mTo1($v, $delimiter, $keyNew));
            } else {
                $data[$keyNew] = $v;
            }
        }
        return $data;
    }

    /**
     * 数组排序
     * @param array $array
     * @param $column
     * @param bool $reverse
     * @return bool
     */
    public static function sort (array &$array, $column, $reverse = FALSE)
    {
        $arrColumn = [];
        foreach ( $array as $key => $val ) {
            $arrColumn[$key] = $val[$column];
        }
        return array_multisort($arrColumn, $reverse ? SORT_DESC : SORT_ASC, $array);
    }

    /**
     * 添加索引
     * @param array $array
     * @param $key
     * @return array
     */
    public static function index (array $array, $key)
    {
        $ret = [];
        foreach ( $array as $val ) {
            $ret[$val[$key]] = $val;
        }
        return $ret;
    }

    /**
     * 添加前后缀
     * @param $array
     * @param null $pre
     * @param null $suf
     * @return array
     */
    public static function addFix (array $array, $pre = NULL, $suf = NULL)
    {
        $ret = [];
        foreach ( $array as $key => $val ) {
            $ret[$key] = $pre.$val.$suf;
        }
        return $ret;
    }
}

数据检查类
class libCheck
{
    /**
     * 是否为IP(IPv4)
     * @param $ip
     * @return bool
     */
    public static function isIP ($ip)
    {
        $isIP = filter_var($ip, FILTER_VALIDATE_IP) ? TRUE : FALSE;
        return $isIP;
    }

    /**
     * 是否为邮箱地址
     * @param $mail
     * @return bool
     */
    public static function isMail ($mail)
    {
        $isMail = filter_var($mail, FILTER_VALIDATE_EMAIL) ? TRUE : FALSE;
        return $isMail;
    }

    /**
     * 是否为URL
     * @param $url
     * @return bool
     */
    public static function isURL ($url)
    {
        $isMail = filter_var($url, FILTER_VALIDATE_URL) ? TRUE : FALSE;
        return $isMail;
    }

    /**
     * 是否为正整数
     * @param $num
     * @return bool
     */
    public static function isPosiInt ($num)
    {
        $isPosiInt = is_int($num) && $num > 0;
        return $isPosiInt;
    }

    /**
     * 是否在范围内
     * @param $num
     * @param int $min
     * @param null $max
     * @return bool
     */
    public static function isBetween ($num, $min = 0, $max = NULL)
    {
        $isBetween = $num >= $min;
        if ( $max ) {
            $isBetween = $isBetween && $num <= $max;
        }
        return $isBetween;
    }

    /**
     * 是否为有效长度
     * @param $str
     * @param int $min
     * @param null $max
     * @return bool
     */
    public static function isValidLen ($str, $min = 1, $max = NULL)
    {
        $length = mb_strlen($str);
        $isValidLen = self::isBetween($length, $min, $max);
        return $isValidLen;
    }
}

文件类

class libFile
{
    /**
     * 获取目录下所有文件
     * @param $path
     * @return array
     */
    public static function getFiles ($path)
    {
        $path = self::formatePath($path);
        $dir = opendir($path);
        $files = [];
        while ( ($filename = readdir($dir)) !== FALSE ) {
            if ( $filename != '.' && $filename != '..' ) {
                $files[] = $path.$filename;
            }
        }
        closedir($dir);
        return $files;
    }

    /**
     * 按模式取目录下文件
     * @param $path
     * @param $pattern
     * @return array
     */
    public static function getFilesByPattern ($path, $pattern)
    {
        $path = self::formatePath($path);
        $filePattern = sprintf('%s%s', $path, $pattern);
        return glob($filePattern);
    }

    /**
     * 获取最后修改时间
     * @param $path
     * @return int
     */
    public static function getModifiedTime ($path)
    {
        return filemtime($path);
    }

    /**
     * 格式化路径
     * @param $path
     * @return string
     */
    public static function formatePath ($path)
    {
        return rtrim($path, '/').'/';
    }
}

HTTP类

class libHttp
{
    const TIMEOUT_DEFAULT = 30;
    private $_ch = NULL;

    /**
     * GET方法
     * @param $url
     * @param array $options
     * @return bool|mixed
     */
    public function get ($url, $options = [])
    {
        return $this->_send($url, NULL, NULL, $options);
    }

    /**
     * POST方法
     * @param $url
     * @param array $params
     * @param array $options
     * @return bool|mixed
     */
    public function post ($url, $params = [], $options = [])
    {
        return $this->_send($url, 'POST', $params, $options);
    }

    /**
     * 错误信息
     * @return string
     */
    public function error ()
    {
        return curl_error($this->_ch);
    }

    /**
     * 错误号
     * @return int
     */
    public function errno ()
    {
        return curl_errno($this->_ch);
    }

    /**
     * @param $url
     * @param string $method
     * @param array $params
     * @param array $options
     * @return bool|mixed
     */
    private function _send ($url, $method = 'GET', $params = [], $options = [])
    {
        $this->_ch = curl_init($url);
        curl_setopt($this->_ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($this->_ch, CURLOPT_CONNECTTIMEOUT, self::TIMEOUT_DEFAULT);
        if ( $method == 'POST' ) {
            $options[CURLOPT_POST] = TRUE;
            $options[CURLOPT_POSTFIELDS] = $params;
        }
        curl_setopt_array($this->_ch, $options);
        $result = curl_exec($this->_ch);
        return ($this->errno() == 0) ? $result : FALSE;
    }

    /**
     * __destruct
     */
    public function __destruct ()
    {
        curl_close($this->_ch);
    }
}

字符串类

class libString
{
    /**
     * 随机字符串
     * @param int $length
     * @param bool $num
     * @param bool $lower
     * @param bool $upper
     * @return string
     */
    public static function rand ($length=5, $num=TRUE, $lower=TRUE, $upper=TRUE)
    {
        $str = '';
        $num && $str .= '0123456789';
        $lowercase && $str .= 'abcdefghijklmnopqrstuvwxyz';
        $uppercase && $str .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $rand = substr(str_shuffle($str), -$length);
        return $rand;
    }

    /**
     * 字符串截取(单次)
     * @param $ld
     * @param $rd
     * @param $str
     * @return string
     */
    public static function sub ($ld, $rd, $str)
    {
        $start = strpos($str, $ld) + strlen($ld);
        $end = strpos($str, $rd, $start);
        $data = substr($str, $start, $end - $start);
        return $data;
    }

    /**
     * 字符串截取(批量)
     * @param $ld
     * @param $rd
     * @param $str
     * @return array
     */
    public static function subs ($ld, $rd, $str)
    {
        $data = [];
        $lLen = strlen($ld);
        $rLen = strlen($rd);
        $offset = 0;
        while ( ($start = strpos($str, $ld, $offset)) !== FALSE ) {
            $start += $lLen;
            $end = strpos($str, $rd, $start);
            $data[] = substr($str, $start, $end - $start);
            $offset = $end + $rLen;
        }
        return $data;
    }

    /**
     * 生成唯一ID
     * @return string
     */
    public static function uniqid ()
    {
        return md5(uniqid(rand(), true));
    }
}

其它工具类

class libTool
{
    /**
     * ip->int
     * @param $ip
     * @return string
     */
    public static function ip2long ($ip)
    {
        $long = sprintf('%u', ip2long($ip));
        return $long;
    }

    /**
     * 系统负载
     * @return mixed
     */
    public static function loadAvg ()
    {
        $load = sys_getloadavg()[0];
        return $load;
    }

    /**
     * 写日志文件
     * @param $file
     * @param $msg
     * @param bool $newLine
     */
    public static function log ($file, $msg, $newLine = TRUE)
    {
        $newLine && $msg .= "\n";
        file_put_contents($file, $msg, FILE_APPEND);
    }

    /**
     * 内存使用量
     * @return float
     */
    public static function memoryUsage ()
    {
        $memery = memory_get_usage() / 1024 / 1024;
        return $memery;
    }

    /**
     * 浏览器变量输出
     * @param $var
     * @param bool|FALSE $return
     * @param bool|TRUE $strict
     * @return bool|mixed|string
     */
    public static function dump ($var, $return = FALSE, $strict = TRUE)
    {
        if (!$strict) {
            if (ini_get('html_errors')) {
                $output = print_r($var, TRUE);
                $output = sprintf('<pre>%s</pre>', htmlspecialchars($output, ENT_QUOTES));
            } else {
                $output = print_r($var, TRUE);
            }
        } else {
            ob_start();
            var_dump($var);
            $output = ob_get_clean();
            if (!extension_loaded('xdebug')) {
                $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output);
                $output = sprintf('<pre>%s</pre>', htmlspecialchars($output, ENT_QUOTES));
            }
        }

        if ($return) {
            return $output;
        } else {
            echo $output;
            return TRUE;
        }
    }
}

时间: 2024-09-26 23:35:03

PHP开发中常用类库的相关文章

iOS开发中常用的数学函数

iOS开发中常用的数学函数   /*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(@"结果 %.f", pow(3,2)); //result 9 NSLog(@"结果 %.f", pow(3,3)); //result 27 //开平方运算 NSLog(@"结果 %.f", sqrt(16)); //result 4 NSLog(@"结果 %.f", sqrt(81)); //result

PHP网站开发中常用的8个小技巧

 这篇文章主要介绍了PHP网站开发中常用的8个小技巧,本文讲解了命名.使用.PHP判断Form表单是否提交.PHP 获取字符串长度.PHP超全局对象等内容,需要的朋友可以参考下     PHP是一种用于创建动态WEB页面的服务端脚本语言.如同ASP和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访 问者浏览到该页面时,服务端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器.但是与ASP或 ColdFusion不同,PHP是一

PHP开发中常用的十个代码样例_php实例

一.黑名单过滤 function is_spam($text, $file, $split = ':', $regex = false){ $handle = fopen($file, 'rb'); $contents = fread($handle, filesize($file)); fclose($handle); $lines = explode("n", $contents); $arr = array(); foreach($lines as $line){ list($w

asp开发中常用函数

asp教程开发中常用函数 sub lastnextpage(pagecount,page,table_style,font_style) '生成上一页下一页链接  dim query, a, x, temp  action = "http://" & request.servervariables("http_host") & request.servervariables("script_name")  query = spli

移动开发-android开发中常用的framework 以及其应用场合

问题描述 android开发中常用的framework 以及其应用场合 在android开发的过程中 我们总会遇到这样或者那样的问题 从底层一路写过来 希望再了解android框架之后可以给我们的开发提高效率 谢谢大家了 解决方案 我对framework的理解是,做应用开发,开发出一套framework,在此基础进行app开发,就不用太操心适配的问题了. 解决方案二: 它可以复用,可以嵌入到其他activity,也可以放到viewpaper中,实现滑动翻页

asp.net 开发中常用正则表达式收藏

提供一几个开发中常用正则表达式,如有电话,手机,邮箱,url,有需要的朋友可能可以看一下. 第一个:验证输入的字符串是否为数字 view code    /// <summary>         /// 验证输入字符串为数字         /// </summary>         /// <param name="p_str_num">输入字符</param>         /// <returns>返回一个bool

iOS开发中常用的各种动画、页面切面效果_IOS

今天主要用到的动画类是CALayer下的CATransition至于各种动画类中如何继承的在这也不做赘述,网上的资料是一抓一大把.好废话少说切入今天的正题. 一.封装动画方法 1.用CATransition实现动画的封装方法如下,每句代码是何意思,请看注释之. #pragma CATransition动画实现 - (void) transitionWithType:(NSString *) type WithSubtype:(NSString *) subtype ForView : (UIVi

js开发中常用日期时间函数

js开发中常用日期时间函数 字符串转成日期类型,date.prototype.isleapyear 判断闰年 date.prototype.format 日期格式化 date.prototype.dateadd 日期计算 date.prototype.datediff 比较日期差 date.prototype.tostring 日期转字符串 date.prototype.toarray 日期分割为数组 date.prototype.datepart 取日期的部分信息 date.prototype

PHP网站开发中常用的8个小技巧_php实例

PHP是一种用于创建动态WEB页面的服务端脚本语言.如同ASP和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访 问者浏览到该页面时,服务端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器.但是与ASP或 ColdFusion不同,PHP是一种源代码开放程序,拥有很好的跨平台兼容性.用户可以在Windows NT系统以及许多版本的Unix系统上运行PHP,而且可以将PHP作为Apache服务器的内置模块或CGI程序运行. 本