- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里是 my code :
$url = "http://localhost/myweb/qanda/1/";
var_dump(filter_var($url, FILTER_VALIDATE_URL));
//=> string(31) "http://localhost/myweb/qanda/1/"
这是一个有效的 URL,一切正常。但是我的代码在 there is a Persian character in the URL 时不起作用:
$url = "http://localhost/myweb/qanda/1/س";
var_dump(filter_var($url, FILTER_VALIDATE_URL));
//=> bool(false)
为什么?我该如何解决?
最佳答案
嗯,基本上是因为根据 RFC,您输入的字符串不是有效的 URL :
"Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL"
您的客户端(浏览器)会将您的字符转换为有效的 %D8%B3
并将其发送到服务器,但您的客户端可能仍会显示 س
(我有)。
所以基本上,正确的 URL 将像这样被验证:
$url = "http://localhost/myweb/qanda/1/%D8%B3";
var_dump(filter_var($url, FILTER_VALIDATE_URL));
您可以安全地使用urlencode()翻译外文。
关于php - 为什么 FILTER_VALIDATE_URL 不适用于波斯字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50315248/
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 中的错误还是可
我是一名优秀的程序员,十分优秀!