www.adminn.cn
站长正能量分享网!

PHP开发中常用类库

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

本文章为各位整理了一些在开发中常用的类了,这些类都非常的实用希望对各位同学会带来帮助.

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;

        }

    }

}

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《PHP开发中常用类库》
文章链接:https://www.adminn.cn/news/7482.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

2次开发,学习研究使用!扫码支付后联系QQ677123发货!

支付宝扫一扫打赏