CheckParamService.php 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace App\Http\Services;
  3. use DateTime;
  4. class CheckParamService
  5. {
  6. public function __construct()
  7. {
  8. }
  9. public function LenMToN($str, $m, $n)
  10. {
  11. if (mb_strlen($str) >= $m && mb_strlen($str) <= $n) {
  12. return true;
  13. } else {
  14. return false;
  15. }
  16. }
  17. public function isascii($str)
  18. {
  19. if (mb_detect_encoding($str) == "ASCII") {
  20. return true;
  21. } else {
  22. return false;
  23. }
  24. }
  25. public function isengnum($str)
  26. {
  27. return (preg_match("/^[a-zA-Z0-9]+$/", $str) == 1);
  28. }
  29. public function isnum($str)
  30. {
  31. return (preg_match("/^[0-9]+$/", $str) == 1);
  32. }
  33. public function isPhone($str)
  34. {
  35. return (preg_match("/^09[0-9]{8}$/", $str));
  36. }
  37. public function isImei($imei)
  38. {
  39. // Should be 15 digits
  40. if (strlen($imei) != 15 || !ctype_digit($imei))
  41. return false;
  42. // Get digits
  43. $digits = str_split($imei);
  44. // Remove last digit, and store it
  45. $imei_last = array_pop($digits);
  46. // Create log
  47. $log = array();
  48. // Loop through digits
  49. foreach ($digits as $key => $n) {
  50. // If key is odd, then count is even
  51. if ($key & 1) {
  52. // Get double digits
  53. $double = str_split($n * 2);
  54. // Sum double digits
  55. $n = array_sum($double);
  56. }
  57. // Append log
  58. $log[] = $n;
  59. }
  60. // Sum log & multiply by 9
  61. $sum = array_sum($log) * 9;
  62. // Compare the last digit with $imei_last
  63. return substr($sum, -1) == $imei_last;
  64. }
  65. public function validateDate($date, $format = 'Y-m-d H:i:s')
  66. {
  67. $d = DateTime::createFromFormat($format, $date);
  68. return $d && $d->format($format) == $date;
  69. }
  70. public function RemoveChars($str, $chars)
  71. {
  72. $chars = str_split($chars, 1);
  73. for ($i = 0; $i < count($chars); $i++) $str = str_replace($chars[ $i ], "", $str);
  74. return $str;
  75. }
  76. }