我对这段代码有问题: $parse = parse_url($url); //$url is POST from input field $urls = $parse['host']; $domain = array('mydomain.com', 'mydomain.net'); if (!in_array($urls, $domain)) { echo 'invalid URL'; }检查 url,如果不在数组中,如果是,则给出错误继续...。我看到所有类似的线程,但没有人解决我的问题。PS 问题是:只给出无效的 URL(以防 url 正确和 URL 错误)ex url:mydomain.com/u/123-test需要是有效的 url
1 回答
喵喔喔
TA贡献1735条经验 获得超5个赞
它不起作用的主要原因是您的网址不包含方案 http(s)部分。使用http(s)://, 当您尝试parse_url()它返回路径值而不是主机值
<?php
$url = 'http://yourdomain.com/u/123-test'; //$url is POST from input field
$url = parse_url($url, PHP_URL_HOST);
$domain = array('yourdomain.com', 'yourdomain.net');
if (!in_array($url, $domain)) {
echo 'invalid URL';
}else{
echo 'valid URL';
}
?>
PHP Parse URL -当协议前缀不存在时,域作为路径返回
演示: https : //3v4l.org/nUCfH
- 1 回答
- 0 关注
- 183 浏览
添加回答
举报
0/150
提交
取消