| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace app\admin\service\tool;
- class CommonTool
- {
- /**
- * 下划线转驼峰
- * @param $str
- * @return null|string|string[]
- */
- public static function lineToHump($str)
- {
- $str = preg_replace_callback('/([-_]+([a-z]{1}))/i', function ($matches) {
- return strtoupper($matches[2]);
- }, $str);
- return $str;
- }
- /**
- * 驼峰转下划线
- * @param $str
- * @return null|string|string[]
- */
- public static function humpToLine($str)
- {
- $str = preg_replace_callback('/([A-Z]{1})/', function ($matches) {
- return '_' . strtolower($matches[0]);
- }, $str);
- return $str;
- }
- /**
- * 获取真实IP
- * @return mixed
- */
- public static function getRealIp()
- {
- $ip = $_SERVER['REMOTE_ADDR'];
- if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
- foreach ($matches[0] as $xip) {
- if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
- $ip = $xip;
- break;
- }
- }
- }elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
- $ip = $_SERVER['HTTP_CLIENT_IP'];
- }elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CF_CONNECTING_IP'])) {
- $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
- }elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_IP'])) {
- $ip = $_SERVER['HTTP_X_REAL_IP'];
- }
- return $ip;
- }
- /**
- * 读取文件夹下的所有文件
- * @param $path
- * @param $basePath
- * @return array|mixed
- */
- public static function readDirAllFiles($path, $basePath = '')
- {
- list($list, $temp_list) = [[], scandir($path)];
- empty($basePath) && $basePath = $path;
- foreach ($temp_list as $file) {
- if ($file != ".." && $file != ".") {
- if (is_dir($path . DIRECTORY_SEPARATOR . $file)) {
- $childFiles = self::readDirAllFiles($path . DIRECTORY_SEPARATOR . $file, $basePath);
- $list = array_merge($childFiles, $list);
- }else {
- $filePath = $path . DIRECTORY_SEPARATOR . $file;
- $fileName = str_replace($basePath . DIRECTORY_SEPARATOR, '', $filePath);
- $list[$fileName] = $filePath;
- }
- }
- }
- return $list;
- }
- /**
- * 模板值替换
- * @param $string
- * @param $array
- * @return mixed
- */
- public static function replaceTemplate($string, $array)
- {
- foreach ($array as $key => $val) {
- if (is_null($val)) $val = '';
- $string = str_replace("{{" . $key . "}}", $val, $string);
- }
- return $string;
- }
- public static function replaceArrayString(?string $arrayString): string
- {
- $arrayString = str_replace('array (', '[', $arrayString);
- $arrayString = str_replace(')', ']', $arrayString);
- $arrayString = str_replace('=>
- [', '=> [', $arrayString);
- return $arrayString;
- }
-
- }
|