westdc-core/Westdc/Helpers/Tools.php

128 lines
3.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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是取整函数为了防止出现一串的小数这里取了两位小数
}
}