Lucifer_wn
- Lucifer_wn 2020-12-03 已签到连续签到4天,获得了20个金钱
- Lucifer_wn 回答了问题 MySQL 主从备份需要几台服务器?
至少两台,一主一从
class MacUtil { var $result = array(); var $macAddrs = array(); //所有mac地址 var $macAddr; //第一个mac地址 public function __construct($OS = PHP_OS) { $this->GetMac($OS); } public function GetMac($OS) { switch (strtolower($OS)) { case "unix": break; case "solaris": break; case "aix": break; case "linux": $this->getLinux(); break; default: $this->getWindows(); break; } $tem = array(); foreach ($this->result as $val) { if (preg_match("/[0-9a-f][0-9a-f][:-]" . "[0-9a-f][0-9a-f][:-]" . "[0-9a-f][0-9a-f][:-]" . "[0-9a-f][0-9a-f][:-]" . "[0-9a-f][0-9a-f][:-]" . "[0-9a-f][0-9a-f]/i", $val, $tem)) { $this->macAddr = $tem[0];//多个网卡时,会返回第一个网卡的mac地址,一般够用。 break; //$this->macAddrs[] = $temp_array[0];//返回所有的mac地址 } } unset($temp_array); return $this->macAddr; } //Linux系统 public function getLinux() { @exec("ifconfig -a", $this->result); return $this->result; } //Windows系统 public function getWindows() { @exec("ipconfig /all", $this->result); if ($this->result) { return $this->result; } else { $ipconfig = $_SERVER["WINDIR"] . "\system32\ipconfig.exe"; if (is_file($ipconfig)) { @exec($ipconfig . " /all", $this->result); } else { @exec($_SERVER["WINDIR"] . "\system\ipconfig.exe /all", $this->result); return $this->result; } } } /** * mac合法性校验 兼容大小写和(:-) * @param $mac * @return bool */ public function mac_check($mac) { if (empty($mac)) { return FALSE; } $mac_reg = '/^([0-9a-fA-F]{2})((([:][0-9a-fA-F]{2}){5})|(([-][0-9a-fA-F]{2}){5}))$/i'; return preg_match($mac_reg, $mac) == 1 ? TRUE : FALSE; } /** * mac 转化为数字表示 * @param $mac_str * @return bool|number */ public function macToInt($mac_str) { if (!$this->mac_check($mac_str)) return FALSE; $filter_mac = strtolower(preg_replace('/[:-]/', '', $mac_str)); $mac_int = hexdec($filter_mac); if (is_numeric($mac_int)) return $mac_int; else return FALSE; } /** * 数字转换为标准mac * @param $mac_int * @param string $chain ('-', ':') * @return bool|string */ public function intToMac($mac_int, $chain = '-') { $max_value = 281474976710655; $min_value = 0; if (!is_numeric($mac_int) || $mac_int > $max_value || $mac_int < $min_value) return FALSE; $chain_list = array('-', ':'); if (!in_array($chain, $chain_list)) return FALSE; $mac_hex = dechex($mac_int); $mac_str = strval($mac_hex); $mac_hex_len = strlen($mac_hex); if ($mac_hex_len < 12) { $add_len = 12 - $mac_hex_len; $add_str = ''; while ($add_len--) { $add_str .= '0'; } $mac_str = $add_str . $mac_str; } $mac_arr = str_split($mac_str, 2); $mac_full_str = implode($chain, $mac_arr); if (!$this->mac_check($mac_full_str)) { return FALSE; } else { $res = str_replace("-", ":", strtoupper($mac_full_str)); return $res; } } }
- Lucifer_wn 2020-12-02 已签到连续签到3天,获得了15个金钱
- Lucifer_wn 2020-12-01 已签到连续签到2天,获得了10个金钱
- Lucifer_wn 2020-11-30 已签到连续签到1天,获得了5个金钱
- Lucifer_wn 回复了 洛天伤 的说说
时间弹起了青春,听伤了路人。
悲伤的名字,悲伤的话 - Lucifer_wn 回复了 风暴烈酒 的说说
哟哈哈哈,今天是个开心的日子呢
无图言屌 - Lucifer_wn 2020-11-18 已签到连续签到2天,获得了10个金钱
/** * 上传文件至OSS * @param array $file 上传后的临时文件对象 * @return string|int 返回地址或错误码 * @throws */ public function uploadFileOss(&$file) { if (empty($file)) return -1; if ($file['error'] != 0) { FunctionUtil::newLog($file['error'], 'error', 'uploadFile'); return -2; } //设置文件黑名单 if (strpos($file['name'], 'php') !== false) return -3; //设置文件白名单 $fileNameArr = explode('.', $file['name']); if (!in_array(end($fileNameArr), ['jpg', 'gif', 'png', 'jpeg'])) return -3; //上传至OSS $oss = new Oss(); $nameArr = explode('.', $file['name']); $suffix = end($nameArr); //获取后缀 $object = 'images/' . date('Y-m', time()) . '/avatar/' . md5($file['tmp_name'] . uniqid()) . '.' . $suffix; $uploadOssResult = $oss->uploadFile($object, $file['tmp_name']); return $uploadOssResult['info']['url']; } #######下面方法是我自己封装的oss操作类############################################################### class Oss { //阿里云accessKeyId private $accessKeyId; //阿里云accessKeySecret private $accessKeySecret; //OSS endpoint // private $endPoint = 'oss-cn-shenzhen-internal.aliyuncs.com'; //默认内网访问 private $endPoint; //默认外网访问 //OSS Bucket 存储空间名称 private $bucket; public $ossClient; public function __construct() { //设置默认属性 $ossConfig = \Yii::$app->params['taobao']['oss']; $this->setAccessKeyId($ossConfig['accessKeyId']); $this->setAccessKeySecret($ossConfig['accessKeySecret']); $this->setBucket($ossConfig['bucket']); $this->setEndPoint($ossConfig['extEndPoint']); if (!strpos($_SERVER['SERVER_NAME'], '52tktk')) { //不在线上服务器则外网访问 $this->setEndPoint($ossConfig['extEndPoint']); //外网访问 } //加载oss客户端对象 $this->ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endPoint); } public function setAccessKeyId($accessKeyId) { $this->accessKeyId = $accessKeyId; } public function setAccessKeySecret($accessKeySecret) { $this->accessKeySecret = $accessKeySecret; } public function setEndPoint($endPoint) { $this->endPoint = $endPoint; } public function setBucket($bucket) { $this->bucket = $bucket; } public function getBucket() { return $this->bucket; } public function getShowUrl() { return 'https://' . $this->bucket . $this->endPoint; } /** * 文件上传,自动识别简单上传或者分片上传 * @param string $object object名称 * @param string $file 需要上传的本地文件的路径 * @param array $options Key-Value数组 * @return null * @throws OssException */ public function uploadFile($object, $file, $options = null) { return $this->ossClient->multiuploadFile($this->bucket, $object, $file, $options); } /** * 字符串上传 * @param string $object 需要上传的本地文件的路径 * @param string $content 内容 * @return null */ public function putObject($object, $content) { return $this->ossClient->putObject($this->bucket, $object, $content); } }