functions.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. if(isset($header['remoteip'])){
  65. $ip = $header['remoteip'];
  66. }else{
  67. $rip = $request->getRealIp();
  68. $riparr = explode(',',$rip);
  69. $ip = $riparr['0'];
  70. }
  71. }
  72. return $ip;
  73. }
  74. /**
  75. * 获取真实IP
  76. */
  77. function get_client_ua()
  78. {
  79. $request = request();
  80. $header = $request->header();
  81. if(isset($header['user-agent'])){
  82. return $header['user-agent'];
  83. }
  84. Logger::app('noagent:'.json_encode($header));
  85. return '';
  86. }