common.php 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. if (!function_exists('get_this_class_methods')) {
  12. /**获取当前类方法
  13. * @param $class
  14. * @return array
  15. */
  16. function get_this_class_methods($class, $unarray = [])
  17. {
  18. $arrayall = get_class_methods($class);
  19. if ($parent_class = get_parent_class($class)) {
  20. $arrayparent = get_class_methods($parent_class);
  21. $arraynow = array_diff($arrayall, $arrayparent);//去除父级的
  22. } else {
  23. $arraynow = $arrayall;
  24. }
  25. return array_diff($arraynow, $unarray);//去除无用的
  26. }
  27. }
  28. if (!function_exists('attr_format')) {
  29. /**
  30. * 格式化属性
  31. * @param $arr
  32. * @return array
  33. */
  34. function attr_format($arr)
  35. {
  36. $data = [];
  37. $res = [];
  38. $count = count($arr);
  39. if ($count > 1) {
  40. for ($i = 0; $i < $count - 1; $i++) {
  41. if ($i == 0) $data = $arr[$i]['detail'];
  42. //替代变量1
  43. $rep1 = [];
  44. foreach ($data as $v) {
  45. foreach ($arr[$i + 1]['detail'] as $g) {
  46. //替代变量2
  47. $rep2 = ($i != 0 ? '' : $arr[$i]['value'] . '_$_') . $v . '-$-' . $arr[$i + 1]['value'] . '_$_' . $g;
  48. $tmp[] = $rep2;
  49. // if ($i == $count - 2) {
  50. foreach (explode('-$-', $rep2) as $k => $h) {
  51. //替代变量3
  52. $rep3 = explode('_$_', $h);
  53. //替代变量4
  54. $rep4['detail'][$rep3[0]] = isset($rep3[1]) ? $rep3[1] : '';
  55. }
  56. if ($count == count($rep4['detail']))
  57. $res[] = $rep4;
  58. // }
  59. }
  60. }
  61. $data = isset($tmp) ? $tmp : [];
  62. }
  63. } else {
  64. $dataArr = [];
  65. foreach ($arr as $k => $v) {
  66. foreach ($v['detail'] as $kk => $vv) {
  67. $dataArr[$kk] = $v['value'] . '_' . $vv;
  68. $res[$kk]['detail'][$v['value']] = $vv;
  69. }
  70. }
  71. $data[] = implode('-', $dataArr);
  72. }
  73. return [$data, array_merge(array_unique($res,SORT_REGULAR))];
  74. }
  75. }
  76. if (!function_exists('verify_domain')) {
  77. /**
  78. * 验证域名是否合法
  79. * @param string $domain
  80. * @return bool
  81. */
  82. function verify_domain(string $domain): bool
  83. {
  84. $res = "/^(?=^.{3,255}$)(http(s)?:\/\/)(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*$/";
  85. if (preg_match($res, $domain))
  86. return true;
  87. else
  88. return false;
  89. }
  90. }