Helpers.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: qiuzijian
  5. * Date: 2021-04-14
  6. * Time: 17:34
  7. */
  8. /**
  9. * 密码验证
  10. */
  11. if (!function_exists('validPass')) {
  12. function validPass($candidate)
  13. {
  14. $r1 = '/[A-Z]/'; // 大写字母
  15. $r2 = '/[a-z]/'; // 小写字母
  16. $r3 = '/[!@#$%^&*()\-_=+{};:,<.>]/'; // 特殊字符
  17. $r4 = '/[0-9]/'; // 数字
  18. if (preg_match_all($r1, $candidate, $o) < 1) return '至少有一个大写字母';
  19. if (preg_match_all($r2, $candidate, $o) < 1) return '至少有一个小写字母';
  20. if (preg_match_all($r3, $candidate, $o) < 1) return '至少有一个特殊字符';
  21. if (preg_match_all($r4, $candidate, $o) < 1) return '至少有一个数字';
  22. if (strlen($candidate) < 8) return '至少8个字符';
  23. return true;
  24. }
  25. }
  26. /**
  27. * 判断按钮权限
  28. */
  29. if (!function_exists('checkBtn')) {
  30. function checkBtn($path = '', $permissionsList = [])
  31. {
  32. return true; //permission todo
  33. $path = explode('?', $path)[0];
  34. if (in_array($path, $permissionsList, true) || in_array('/' . $path, $permissionsList, true)) {
  35. return true;
  36. }
  37. return false;
  38. }
  39. }
  40. if (! function_exists('pinyin')) {
  41. /**
  42. * Get the Pinyin of given string.
  43. *
  44. * @param string $string
  45. * @param string $option
  46. *
  47. * @return string
  48. */
  49. function pinyin($string)
  50. {
  51. return app(\Overtrue\Pinyin\Pinyin::class)->convert($string, 64);
  52. }
  53. } else {
  54. Log::warning('There exist multiple function "pinyin".');
  55. }
  56. if (! function_exists('curl_request')) {
  57. /**
  58. * 作者: qiuzijian
  59. * 注释: curl请求方法
  60. * @param $url
  61. * @param null $data
  62. * @return bool|string
  63. */
  64. function curl_request($url, $data = null)
  65. {
  66. $curl = curl_init();
  67. curl_setopt($curl, CURLOPT_SSLVERSION, 1);
  68. curl_setopt($curl, CURLOPT_URL, $url);
  69. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  70. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  71. if (!empty($data)) {
  72. curl_setopt($curl, CURLOPT_POST, 1);
  73. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  74. }
  75. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  76. $result = curl_exec($curl);
  77. if (curl_errno($curl)) {
  78. return 'Errno' . curl_error($curl);
  79. }
  80. curl_close($curl);
  81. return $result;
  82. }
  83. }
  84. if (! function_exists('deldir')) {
  85. /**
  86. * 作者: qiuzijian
  87. * 注释: 递归删除目录
  88. * @param $path
  89. * @return bool
  90. */
  91. function deldir($path){
  92. //如果是目录则继续
  93. if(is_dir($path)){
  94. //扫描一个文件夹内的所有文件夹和文件并返回数组
  95. $p = scandir($path);
  96. //如果 $p 中有两个以上的元素则说明当前 $path 不为空
  97. if(count($p)>2){
  98. foreach($p as $val){
  99. //排除目录中的.和..
  100. if($val !="." && $val !=".."){
  101. //如果是目录则递归子目录,继续操作
  102. if(is_dir($path.$val)){
  103. //子目录中操作删除文件夹和文件
  104. deldir($path.$val.'/');
  105. }else{
  106. //如果是文件直接删除
  107. unlink($path.$val);
  108. }
  109. }
  110. }
  111. }
  112. }
  113. //删除目录
  114. return rmdir($path);
  115. }
  116. }