php 开发库,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('

%s
', 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('

%s
', htmlspecialchars($output, ENT_QUOTES));

}

}

if ($return) {

return $output;

} else {

echo $output;

return TRUE;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值