'second', 'third' => 'third') */ public static function getArguments() { $arguments = $_SERVER['argv']; for ($i = 0; $i < $_SERVER['argc']; $i++) { if (!isset($arguments[$i][0])) { continue; } //判断第一位是否是 '-' if (substr($arguments[$i], 0, 1) != '-') { continue; } //判断第二位是否是 '-' if (substr($arguments[$i], 1, 1) != '-') { if (strlen($arguments[$i]) == 2) { $key = substr($arguments[$i], 1); $value = $arguments[$i + 1]; $arguments[$key] = trim($value); unset($arguments[$i]); unset($arguments[$i + 1]); } elseif (strlen($arguments[$i]) > 2) { $key = substr($arguments[$i], 1, 1); $value = substr($arguments[$i], 2); $arguments[$key] = trim($value); unset($arguments[$i]); } } else { $value = substr($arguments[$i], 2); $value = explode('=', $value, 2); $arguments[$value[0]] = trim($value[1]); unset($arguments[$i]); } } return $arguments; } /** * 尝试解析字符串,如果解析失败则返回原值 * @param $string * @return string | array */ public static function jsonDecode($string) { if (!$string) { return $string; } $result = json_decode($string, true); if ($result) { $string = $result; } return $string; } /** * 获取数组分片, 从指定列表中获取指定元素之后的若干个切片 * @param $idList * @param $lastId * @param $count * @return array */ public static function getSlice($idList, $lastId = 0, $count = 20) { $result = array(); if (!$idList || ($lastId && !in_array($lastId, $idList))) { return $result; } if ($lastId) { $position = array_search($lastId, $idList) + 1; } else { $position = 0; } $result = array_slice($idList, $position, $count); return $result; } /** * 创建目录 * @param string $dir * @param integer $mode */ public static function mkdir($dir, $mode = 0755) { if (!is_dir($dir)) { $temp = explode('/', $dir); $cur_dir = ''; for ($i = 0; $i < count($temp); $i++) { $cur_dir .= $temp[$i] . '/'; if (!is_dir($cur_dir)) { @mkdir($cur_dir, 0777); @chmod($cur_dir, $mode); } } } } public static function copydir($strSrcDir, $strDstDir) { $dir = opendir($strSrcDir); if (!$dir) { return false; } if (!is_dir($strDstDir)) { if (!mkdir($strDstDir)) { return false; } } while (false !== ($file = readdir($dir))) { if (($file != '.') && ($file != '..')) { if (is_dir($strSrcDir . '/' . $file)) { if (!self::copydir($strSrcDir . '/' . $file, $strDstDir . '/' . $file)) { return false; } } else { if (!copy($strSrcDir . '/' . $file, $strDstDir . '/' . $file)) { return false; } } } } closedir($dir); return true; } /** * 获取强密码 * @param int $length * @return string */ public static function getStrongCode($length = 8) { $length = $length > 8 ? intval($length) : 8; $arr = array(); // $arr[] = self::getRandoms($length - 4); $arr[] = strtolower(self::getRandoms($length, 'char')); // $arr[] = strtolower(self::getRandoms(1, 'char')); $arr[] = mt_rand(0, 9); // $special = '!@#$%^*()'; // $arr[] = $special{mt_rand(0, 11)}; shuffle($arr); return implode('', $arr); } /** * 获取随机数 * * @param int $length * @param string $type (可选) * @return string */ public static function getRandoms($length = 4, $type = '') { $returnStr = ''; $pattern = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ'; if ($type == 'char') { $start = 10; $end = 61; } elseif ($type == 'num') { $start = 0; $end = 9; } else { $start = 0; $end = 61; } for ($i = 0; $i < $length; $i++) { $returnStr .= $pattern{mt_rand($start, $end)}; // 生成php随机数 } return $returnStr; } }