Str.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace crmeb\utils;
  12. /**
  13. * 字符串操作帮助类
  14. * Class Str
  15. * @package crmeb\utils
  16. */
  17. class Str
  18. {
  19. /**
  20. * @param $action
  21. * @param $controller
  22. * @param $module
  23. * @param $route
  24. * @return string
  25. */
  26. public static function getAuthName(string $action, string $controller, string $module, $route)
  27. {
  28. return strtolower($module . '/' . $controller . '/' . $action . '/' . self::paramStr($route));
  29. }
  30. /**
  31. * @param $params
  32. * @return string
  33. */
  34. public static function paramStr($params)
  35. {
  36. if (!is_array($params)) $params = json_decode($params, true) ?: [];
  37. $p = [];
  38. foreach ($params as $key => $param) {
  39. $p[] = $key;
  40. $p[] = $param;
  41. }
  42. return implode('/', $p);
  43. }
  44. /**
  45. * 截取中文指定字节
  46. * @param string $str
  47. * @param int $utf8len
  48. * @param string $chaet
  49. * @param string $file
  50. * @return string
  51. */
  52. public static function substrUTf8($str, $utf8len = 100, $chaet = 'UTF-8', $file = '....')
  53. {
  54. if (mb_strlen($str, $chaet) > $utf8len) {
  55. $str = mb_substr($str, 0, $utf8len, $chaet) . $file;
  56. }
  57. return $str;
  58. }
  59. }