functions.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. use Hashids\Hashids;
  3. use support\facade\Logger;
  4. /**
  5. * Here is your custom functions.
  6. */
  7. /*
  8. 快速排序
  9. */
  10. function quickSort($array)
  11. {
  12. if(!isset($array[1]))
  13. return $array;
  14. $mid = $array[0]; //获取一个用于分割的关键字,一般是首个元素
  15. $leftArray = array();
  16. $rightArray = array();
  17. foreach($array as $v)
  18. {
  19. if($v > $mid)
  20. $rightArray[] = $v; //把比$mid大的数放到一个数组里
  21. if($v < $mid)
  22. $leftArray[] = $v; //把比$mid小的数放到另一个数组里
  23. }
  24. $leftArray = quickSort($leftArray); //把比较小的数组再一次进行分割
  25. $leftArray[] = $mid; //把分割的元素加到小的数组后面,不能忘了它哦
  26. $rightArray = quickSort($rightArray); //把比较大的数组再一次进行分割
  27. return array_merge($leftArray,$rightArray); //组合两个结果
  28. }
  29. // 获取Hashids 对象
  30. function getHashids(){
  31. global $hashids;
  32. if($hashids instanceof Hashids ){
  33. return $hashids;
  34. }
  35. $hashids = new Hashids('D6M97LIvpp4qWuz3nKzqi6yYN4GAA61b',32);
  36. return $hashids;
  37. }
  38. /**
  39. * 获取对象或数组的属性值
  40. * @param $param
  41. * @param $key
  42. * @param string $default
  43. * @return mixed|string
  44. */
  45. function getProp($param, $key, $default = '')
  46. {
  47. $result = $default;
  48. if (is_object($param) && isset($param->$key)) {
  49. $result = $param->$key;
  50. }
  51. if (is_array($param) && isset($param[$key])) {
  52. $result = $param[$key];
  53. }
  54. return $result;
  55. }
  56. /**
  57. * 获取真实IP
  58. */
  59. function get_client_ip()
  60. {
  61. $ip = '0.0.0.0';
  62. if ($request = request()) {
  63. $header = $request->header();
  64. $ip = $header['remoteip'];
  65. }
  66. return $ip;
  67. }
  68. /**
  69. * 获取真实IP
  70. */
  71. function get_client_ua()
  72. {
  73. $request = request();
  74. $header = $request->header();
  75. return $header['user-agent'];
  76. }