1. <?php
    2. /**
    3. * 随机长度字符串.
    4. *
    5. * @param int $lenth 随机字符串的长度
    6. * @param string $characters 字符集
    7. *
    8. * @return string
    9. */
    10. if (!function_exists('str_rand')) {
    11. function str_rand($length = 8, $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
    12. {
    13. if (!is_int($length) || $length < 0) {
    14. return false;
    15. }
    16. $characters_length = strlen($characters) - 1;
    17. $string = '';
    18. for ($i = $length; $i > 0; --$i) {
    19. $string .= $characters[mt_rand(0, $characters_length)];
    20. }
    21. return $string;
    22. }
    23. }
    24. if (!function_exists('parse_integer_value')) {
    25. /**
    26. * 主要用于从前端获取分页数据时的重置.
    27. *
    28. * @param array $data 数据原始位置,是为了判断 key 是否被设置所以需要源数据
    29. * @param string $key 取值 key
    30. * @param int|null $default 默认值
    31. *
    32. * @return int|null 返回默认值,或者 int 类型的值
    33. */
    34. function parse_integer_value(array $data, string $key, int $default = null)
    35. {
    36. if (!isset($data[$key])) {
    37. return $default;
    38. }
    39. if (false === filter_var($data[$key], FILTER_VALIDATE_INT)) {
    40. return $default;
    41. }
    42. return (int) $data[$key];
    43. }
    44. }