urlchecker.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/usr/local/bin/php
  2. <?php
  3. error_reporting(E_ALL & ~ (E_WARNING | E_NOTICE | E_STRICT | E_DEPRECATED));
  4. ini_set('display_startup_errors',0);
  5. ini_set('display_errors',0);
  6. ini_set('log_errors',0);
  7. $argv0 = $argv[0];
  8. $argv1 = $argv[1]??null;
  9. function isUrl(string $url): bool
  10. {
  11. $url= strtolower($url);
  12. $pattern1 = "/^http(s)?\:\/\/(www\.)?[\w-]+\.\w+$/";
  13. $pattern2 = "/^http(s)?\:\/\/(www\.)?[\w-]+\.[\w-]+\.\w+$/";
  14. $pattern3 = "/^http(s)?\:\/\/(www\.)?[\w-]+\.[\w-]+\.[\w-]+\.\w+$/";
  15. if (preg_match($pattern1, $url) || preg_match($pattern2, $url) || preg_match($pattern3, $url)) {
  16. $retval=true;
  17. } else {
  18. $retval=false;
  19. }
  20. return $retval;
  21. }
  22. function left(?string $string, int $length): string
  23. {
  24. if (!isset($string) || $string === "") {
  25. return "";
  26. }
  27. return mb_substr($string, 0, $length);
  28. }
  29. if (is_null($argv1)) {
  30. echo("0");
  31. exit;
  32. }
  33. $argv1 = strtolower($argv1);
  34. if ((left($argv1, 7) !== "http://") && (left($argv1, 8) !== "https://")) {
  35. echo("0 = $argv1 [invalid scheme]");
  36. exit;
  37. }
  38. if (!isurl($argv1)) {
  39. echo("0 = $argv1 [invalid url]");
  40. exit;
  41. }
  42. $cont = file_get_contents($argv1, false);
  43. if ($cont) {
  44. echo("1 = $argv1 [valid]");
  45. } else {
  46. echo("0 = $argv1 [invalid failed]");
  47. }
  48. exit;
  49. ?>