- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现使用 filter_var($url, FILTER_VALIDATE_URL)
的问题是它在 $url = "http://x";
不需要 TLD。我该如何解决这个问题,以便需要 TLD?
最佳答案
对于 TLD 验证,您需要使用 Public Suffix List 运行的库.这里有两种不同的解决方案。
首先是 TLDDatabase ,技术上它只是 TLD 的实际数据库。
$store = new LayerShifter\TLDDatabase\Store();
$store->isICCAN('com'); // returns true
$store->isICCAN('co.uk'); // returns true
$store->isICCAN('example'); // returns false
如果您需要更智能的解决方案,我推荐TLDExtract .它是您可以用作验证器的域解析器。
$extract = new LayerShifter\TLDExtract\Extract();
$extract->setExtractionMode(Extract::MODE_ALLOW_ICCAN);
# For domain 'shop.github.com'
$result = $extract->parse('shop.github.com');
$result->getRegistrableDomain(); // will return 'github.com'
$result->getSuffix(); // will return 'com'
# For domain 'shop.github.co.uk'
$result = $extract->parse('http://shop.github.co.uk');
$result->getRegistrableDomain(); // will return 'github.co.uk'
$result->getSuffix(); // will return 'co.uk'
# For domain 'example.example'
$result = $extract->parse('https://example.example');
$result->getRegistrableDomain(); // will return NULL
$result->getSuffix(); // will return NULL
# For domain 'localhost'
$result = $extract->parse('localhost');
$result->getRegistrableDomain(); // will return NULL
$result->getSuffix(); // will return NULL
关于不需要 PHP FILTER_VALIDATE_URL TLD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26495801/
FILTER_VALIDATE_URL 过滤器在验证非 ASCII URL 时似乎有一些问题: var_dump(filter_var('http://pt.wikipedia.org/wiki/',
为什么 PHP 函数:FILTER_VALIDATE_URL 认为子域包含下划线的 URL 是无效的? 我如何确保此 FILTER_VALIDATE_URL 包含此类现有 URL(可能是最快的执行方
在 PHP 中,filter_var('www.example.com', FILTER_VALIDATE_URL) 返回 false。这个对吗? www.example.com 不是一个有效的 UR
我发现使用 filter_var($url, FILTER_VALIDATE_URL) 的问题是它在 $url = "http://x"; 时返回 true 不需要 TLD。我该如何解决这个问题,以便
这里是 my code : $url = "http://localhost/myweb/qanda/1/"; var_dump(filter_var($url, FILTER_VALIDATE_UR
我有以下代码: $url = "http://icons3.iconfinder.netdna-cdn.com/data/icons/pool/poolbird.png"; if (filter_va
出于某种我不明白的原因,FILTER_VALIDATE_URL 表示以下 URL 有效: http://ghjfgh 不是所有有效的 URL 都至少包含一个句点吗?我从未见过没有定义的 TDL。那么为
我用我能想象到的strings和int进行测试,只要以http://开头,使用FILTER_VALIDATE_URL就是一个有效的url。那么,为什么我们需要 FILTER_VALIDATE_URL?
filter_var($url, FILTER_VALIDATE_URL) 似乎是检测 $url 是否包含 url 的好方法。有什么办法可以看出这个函数检测的是什么正则表达式? 谢谢 最佳答案 它使用
我们可以使用 filter_vars() 与 FILTER_VALIDATE_URL 和 flags : FILTER_FLAG_SCHEME_REQUIRED FILTER_FLAG_HOST_RE
由于某些奇怪的原因,下面的函数表示此 url“paradox-productions.net”在 http://alpha.shurl.be/ 上无效在我的本地主机上有效。它是 PHP 中的错误还是可
我是一名优秀的程序员,十分优秀!