128 lines
3.1 KiB
PHP
128 lines
3.1 KiB
PHP
<?php
|
||
namespace Westdc\Helpers;
|
||
|
||
class Tools {
|
||
|
||
/**
|
||
* 判断是否为UUID字符串
|
||
* @param $uuid
|
||
* @return int
|
||
*/
|
||
public static function isUUID($uuid) {
|
||
if(!is_string($uuid))
|
||
return false;
|
||
return preg_match("/^[0-9A-Za-z]{8}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{12}$/",$uuid);
|
||
}
|
||
|
||
/**
|
||
* @param $email
|
||
* @return bool
|
||
*/
|
||
public static function isEmail($email){
|
||
|
||
if(filter_var($email,FILTER_VALIDATE_EMAIL))
|
||
return true;
|
||
else
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* @param $cmd
|
||
*/
|
||
public function execBackend($cmd)
|
||
{
|
||
if (substr(php_uname(), 0, 7) == "Windows"){
|
||
pclose(popen("start cmd /c ". $cmd, "r"));
|
||
}
|
||
else {
|
||
exec($cmd . " > /dev/null &");
|
||
}
|
||
|
||
return;
|
||
}
|
||
|
||
/**
|
||
* 返回的汉语文字信息在windows中是GB2312编码,需要手动改成UTF8
|
||
* iconv("GB2312","UTF-8",$read);
|
||
* @param $cmd
|
||
* @return array
|
||
*/
|
||
public static function execFront($cmd)
|
||
{
|
||
$response = array();
|
||
$handle = popen("$cmd 2>&1", 'r');
|
||
|
||
while ($read = fread($handle, 20096)) {
|
||
|
||
if(!mb_detect_encoding($read, 'UTF-8', true))
|
||
iconv("GB2312","UTF-8",$read);
|
||
|
||
$response[] = trim($read);
|
||
}
|
||
pclose($handle);
|
||
flush();
|
||
|
||
return $response;
|
||
}
|
||
|
||
/**
|
||
* @return string
|
||
*/
|
||
static public function uuid()
|
||
{
|
||
return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
|
||
// 32 bits for "time_low"
|
||
mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
|
||
|
||
// 16 bits for "time_mid"
|
||
mt_rand( 0, 0xffff ),
|
||
|
||
// 16 bits for "time_hi_and_version",
|
||
// four most significant bits holds version number 4
|
||
mt_rand( 0, 0x0fff ) | 0x4000,
|
||
|
||
// 16 bits, 8 bits for "clk_seq_hi_res",
|
||
// 8 bits for "clk_seq_low",
|
||
// two most significant bits holds zero and one for variant DCE1.1
|
||
mt_rand( 0, 0x3fff ) | 0x8000,
|
||
|
||
// 48 bits for "node"
|
||
mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
|
||
);
|
||
}
|
||
|
||
/**
|
||
* 给文件夹末尾加斜线
|
||
* @param $directory
|
||
* @return string
|
||
*/
|
||
static function dirSlash($directory){
|
||
if(!preg_match("/(\\/|\\\)$/",$directory))
|
||
{
|
||
$directory.="/";
|
||
}
|
||
|
||
return $directory;
|
||
}
|
||
|
||
static function getHostLink()
|
||
{
|
||
$protocol = "http";
|
||
if(strpos(strtolower($_SERVER['SERVER_PROTOCOL']),"https"))
|
||
{
|
||
$protocol = "https";
|
||
}
|
||
return $protocol."://".$_SERVER['SERVER_NAME'];
|
||
}
|
||
|
||
function count_size($bit)
|
||
{
|
||
$type = array('Bytes','KB','MB','GB','TB');
|
||
for($i = 0; $bit >= 1024; $i++)//单位每增大1024,则单位数组向后移动一位表示相应的单位
|
||
{
|
||
$bit/=1024;
|
||
}
|
||
return (floor($bit*100)/100).$type[$i];//floor是取整函数,为了防止出现一串的小数,这里取了两位小数
|
||
}
|
||
|
||
} |