【问题标题】:How to check if a variable contains a valid url using PHP and jQuery?如何使用 PHP 和 jQuery 检查变量是否包含有效的 url?
【发布时间】:2012-01-25 09:17:52
【问题描述】:

我正在尝试制作 whois 检查脚本。

用户可以提交一些域地址,然后在可用或不可用时收到消息。

$_POST['url']是用户提交的值。

我怎么知道这个变量是不是域名地址?

它应该为以下域提供true

http://google.com
www.google.com
http://www.google.com
google.com

同样适用于 javascript(我也在使用 ajax-validation)?

【问题讨论】:

  • @Jon 这是关于验证,而不是提取。
  • @Madmartigan 我认为我们不应该发送任何查询,因为提交了有效的网址
  • @Madmartigan 是的,但coca.cola 不是有效的 URL(目前)。
  • 有人知道一些类似的脚本来通过 javascript 或 jQuery 检查域地址吗?

标签: php javascript jquery dns whois


【解决方案1】:

如果您想检查网址是否为有效网址,您可以使用 filter_var()FILTER_VALIDATE_URL 过滤器。

filter_var($_POST['url'], FILTER_VALIDATE_URL)

【讨论】:

  • @Steve 轻松修复,如果没有 http://,则只需添加 http://,然后使用此功能。
  • @Madmartigan 好的,你知道一些 javascript 检查的解决方案吗?
  • @Steve 很抱歉我错过了您的示例网址。我以为你想检查 url 是否有效。没有协议的 url 不是有效的 url。
  • @Steve:IMO,要么强制执行严格的 URL 格式,要么通过验证,要么自己格式化字符串,然后将其传递给 Whois API。问题是,您正在尝试接受和验证本身根本不是有效 URL 的字符串,例如 this.one
【解决方案2】:

您可以使用以下代码:

示例:

$url = "http://0gate.com"; // you can use instead - $_POST['url']
if (!preg_match("/^[http|https]*[:\/\/]*[A-Za-z0-9\-_]+\.([A-Za-z]{3,4})+([\.A-Za-z]{3})*$/i", $url)) {
  echo "The domain [not valid - false]";
}else{
  echo "The domain is [valid - true]";
}

【讨论】:

  • 哦,你的意思是像this?如果您要复制/粘贴答案,请至少注明您的来源。
  • 如果只需要主机可以使用$host = parse_url($url, PHP_URL_HOST);
  • @LionKing:无意冒犯,很明显,您复制了链接的答案并更改了一些字符。
  • @Lion King 在已回答问题时提供正确帮助将链接到评论中的问题和/或标记此问题。
  • 什么,如果不是域,我们怎么知道? $getdomain 为假?
猜你喜欢
  • 2011-12-02
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
  • 2018-06-29
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
  • 2012-03-12
相关资源
最近更新 更多