输入 url 验证 php
Input url validation php
我对这段代码有疑问:
$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,如果不在数组中,如果是则报错继续....
我看到了所有类似的帖子,但没有人解决我的问题。
P.S 问题是:只给出 Invalid URL(如果 url 正确,如果 URL 错误)
e.x url: mydomain.com/u/123-test
需要有效 url
它不起作用的主要原因是您的 url 不包含 scheme http(s)
部分。使用 http(s)://
,当您尝试 parse_url()
它 returns path 值而不是 host 值
<?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 - Domain returned as path when protocol prefix not
present
我对这段代码有疑问:
$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,如果不在数组中,如果是则报错继续.... 我看到了所有类似的帖子,但没有人解决我的问题。
P.S 问题是:只给出 Invalid URL(如果 url 正确,如果 URL 错误)
e.x url: mydomain.com/u/123-test
需要有效 url
它不起作用的主要原因是您的 url 不包含 scheme http(s)
部分。使用 http(s)://
,当您尝试 parse_url()
它 returns path 值而不是 host 值
<?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 - Domain returned as path when protocol prefix not present