douzhankui0758 2017-06-11 19:04
浏览 40
已采纳

PHP,使用域扩展的url验证

I've been trying to use FILTER_VALIDATE_URL, as well as regex, to validate url, but no luck.

For example:

$url = "http://www.stackoverflow";

    if (preg_match("/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/", $url)) {
      echo "URL is valid";
    }
    else {
      echo "URL is invalid";
    }
        echo("$url is not a valid URL");
    }

The above will show valid url, even if domain extension is omitted, the same goes for FILTER_VALIDATE_URL

What I would like is to validate url only if entered in following format:

http://www.stackoverflow.com
https://www.stackoverflow.com
http://stackoverflow.com
https://stackoverflow.com

anything like:

http://stackoverflow
https://stackoverflow
http://www.stackoverflow
https://www.stackoverflow

should be invalid.

And of course it should work with any type of domain extension.

  • 写回答

1条回答 默认 最新

  • dongshi1102 2017-06-11 19:19
    关注

    If you want to work with FILTER_VALIDATE_USE, acording to documentation, you should use:

    FILTER_FLAG_HOST_REQUIRED - URL must include host name (like http://www.example.com)

    like:

    <?php
    $url = "https://www.stackoverflow.com";
    
    if (filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED)) {
        echo("$url is a valid URL");
    } else {
        echo("$url is not a valid URL");
    }
    ?>
    

    And this should work. Hope it helps!

    Edit:

    The results of the code:

    stackoverflow.com is not a valid URL

    http://stackoverflow.com is a valid URL

    http://www.stackoverflow.com is a valid URL

    ww.stackoverflow.com is not a valid URL

    http://stackoverflow is a valid URL

    As @mickmackusa said, I removed the regex snippet, if you want regex, you could use:

    validate url with regular expressions

    Or:

    URL Validation REGEX - URL just valid with http://

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 有人能看一下我宿舍管理系统的报修功能该怎么改啊?链表那里总是越界
  • ¥15 cs loadimage运行不了,easyx也下了,没有用
  • ¥15 r包runway详细安装教程
  • ¥15 Html中读取Json文件中数据并制作表格
  • ¥15 谁有RH342练习环境
  • ¥15 STM32F407 DMA中断问题
  • ¥15 uniapp连接阿里云无法发布消息和订阅
  • ¥25 麦当劳点餐系统代码纠错
  • ¥15 轮班监督委员会问题。
  • ¥20 关于变压器的具体案例分析