Why is filter_var with FILTER_VALIDATE_URL showing this string as a valid URL?
The input string is:
https://lh
however, with:
var_dump(filter_var('https://lh', FILTER_VALIDATE_URL)) // string(10) "https://lh"
for some reason the above string is classed as a valid URL. I have read another SO post saying that FILTER_VALIDATE_URL
is not restricted to the http
protocol but surely the above link is not a valid URL for any protocol.
Why is this happening?
php url filter-var
|
show 11 more comments
The input string is:
https://lh
however, with:
var_dump(filter_var('https://lh', FILTER_VALIDATE_URL)) // string(10) "https://lh"
for some reason the above string is classed as a valid URL. I have read another SO post saying that FILTER_VALIDATE_URL
is not restricted to the http
protocol but surely the above link is not a valid URL for any protocol.
Why is this happening?
php url filter-var
4
That is, in fact, a valid URL.
– Paul
Nov 15 '18 at 22:46
Whats your problem with this url? Is it because, it's only a tld?
– Philipp
Nov 15 '18 at 22:51
2
What makes a URL valid is whether or not it is accordance with the spec, rfc 3986 (though I believe FILTER_VALIDATE_URL still uses the older rfc 2396, the differences are irrelevant here.)
– Paul
Nov 15 '18 at 23:19
2
Try callingparse_url()
and performing additional validation steps on the individual pieces. Be warned: You seem to have quite a few incorrect assumptions about what valid URLs and hostnames can look like.
– Sammitch
Nov 16 '18 at 0:05
1
@FunkFortyNiner as others have stated, a valid URL doesn't have to use a FQDN - it can use just a host name.protocol://host:port/path/filename.foo?arguments
Protocol and host name are the only things required to initiate a connection, only critical part on the host name is that the client has to be able to resolve it - hosts file, dns, dns with appended search domain(s), etc ...
– ivanivan
Nov 16 '18 at 2:13
|
show 11 more comments
The input string is:
https://lh
however, with:
var_dump(filter_var('https://lh', FILTER_VALIDATE_URL)) // string(10) "https://lh"
for some reason the above string is classed as a valid URL. I have read another SO post saying that FILTER_VALIDATE_URL
is not restricted to the http
protocol but surely the above link is not a valid URL for any protocol.
Why is this happening?
php url filter-var
The input string is:
https://lh
however, with:
var_dump(filter_var('https://lh', FILTER_VALIDATE_URL)) // string(10) "https://lh"
for some reason the above string is classed as a valid URL. I have read another SO post saying that FILTER_VALIDATE_URL
is not restricted to the http
protocol but surely the above link is not a valid URL for any protocol.
Why is this happening?
php url filter-var
php url filter-var
edited Nov 15 '18 at 22:41
Script47
asked Nov 15 '18 at 22:36
Script47Script47
9,34642246
9,34642246
4
That is, in fact, a valid URL.
– Paul
Nov 15 '18 at 22:46
Whats your problem with this url? Is it because, it's only a tld?
– Philipp
Nov 15 '18 at 22:51
2
What makes a URL valid is whether or not it is accordance with the spec, rfc 3986 (though I believe FILTER_VALIDATE_URL still uses the older rfc 2396, the differences are irrelevant here.)
– Paul
Nov 15 '18 at 23:19
2
Try callingparse_url()
and performing additional validation steps on the individual pieces. Be warned: You seem to have quite a few incorrect assumptions about what valid URLs and hostnames can look like.
– Sammitch
Nov 16 '18 at 0:05
1
@FunkFortyNiner as others have stated, a valid URL doesn't have to use a FQDN - it can use just a host name.protocol://host:port/path/filename.foo?arguments
Protocol and host name are the only things required to initiate a connection, only critical part on the host name is that the client has to be able to resolve it - hosts file, dns, dns with appended search domain(s), etc ...
– ivanivan
Nov 16 '18 at 2:13
|
show 11 more comments
4
That is, in fact, a valid URL.
– Paul
Nov 15 '18 at 22:46
Whats your problem with this url? Is it because, it's only a tld?
– Philipp
Nov 15 '18 at 22:51
2
What makes a URL valid is whether or not it is accordance with the spec, rfc 3986 (though I believe FILTER_VALIDATE_URL still uses the older rfc 2396, the differences are irrelevant here.)
– Paul
Nov 15 '18 at 23:19
2
Try callingparse_url()
and performing additional validation steps on the individual pieces. Be warned: You seem to have quite a few incorrect assumptions about what valid URLs and hostnames can look like.
– Sammitch
Nov 16 '18 at 0:05
1
@FunkFortyNiner as others have stated, a valid URL doesn't have to use a FQDN - it can use just a host name.protocol://host:port/path/filename.foo?arguments
Protocol and host name are the only things required to initiate a connection, only critical part on the host name is that the client has to be able to resolve it - hosts file, dns, dns with appended search domain(s), etc ...
– ivanivan
Nov 16 '18 at 2:13
4
4
That is, in fact, a valid URL.
– Paul
Nov 15 '18 at 22:46
That is, in fact, a valid URL.
– Paul
Nov 15 '18 at 22:46
Whats your problem with this url? Is it because, it's only a tld?
– Philipp
Nov 15 '18 at 22:51
Whats your problem with this url? Is it because, it's only a tld?
– Philipp
Nov 15 '18 at 22:51
2
2
What makes a URL valid is whether or not it is accordance with the spec, rfc 3986 (though I believe FILTER_VALIDATE_URL still uses the older rfc 2396, the differences are irrelevant here.)
– Paul
Nov 15 '18 at 23:19
What makes a URL valid is whether or not it is accordance with the spec, rfc 3986 (though I believe FILTER_VALIDATE_URL still uses the older rfc 2396, the differences are irrelevant here.)
– Paul
Nov 15 '18 at 23:19
2
2
Try calling
parse_url()
and performing additional validation steps on the individual pieces. Be warned: You seem to have quite a few incorrect assumptions about what valid URLs and hostnames can look like.– Sammitch
Nov 16 '18 at 0:05
Try calling
parse_url()
and performing additional validation steps on the individual pieces. Be warned: You seem to have quite a few incorrect assumptions about what valid URLs and hostnames can look like.– Sammitch
Nov 16 '18 at 0:05
1
1
@FunkFortyNiner as others have stated, a valid URL doesn't have to use a FQDN - it can use just a host name.
protocol://host:port/path/filename.foo?arguments
Protocol and host name are the only things required to initiate a connection, only critical part on the host name is that the client has to be able to resolve it - hosts file, dns, dns with appended search domain(s), etc ...– ivanivan
Nov 16 '18 at 2:13
@FunkFortyNiner as others have stated, a valid URL doesn't have to use a FQDN - it can use just a host name.
protocol://host:port/path/filename.foo?arguments
Protocol and host name are the only things required to initiate a connection, only critical part on the host name is that the client has to be able to resolve it - hosts file, dns, dns with appended search domain(s), etc ...– ivanivan
Nov 16 '18 at 2:13
|
show 11 more comments
1 Answer
1
active
oldest
votes
OK, so lots of comments later with some digression and no posted answer.
Therefore...
A valid URL doesn't have to use a FQDN - it can use just a host name. protocol://host:port/path/filename.foo?arguments
Protocol and host name are the only things required to initiate a connection, only critical part on the host name is that the client has to be able to resolve it - hosts file, dns, dns with appended search domain(s), etc
If any of the other commenters feel the need to edit, etc. feel free.
The client does not need to be able to resolve a host name in order for a URL to be valid.
– Paul
Nov 16 '18 at 6:01
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53328847%2fwhy-is-filter-var-with-filter-validate-url-showing-this-string-as-a-valid-url%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
OK, so lots of comments later with some digression and no posted answer.
Therefore...
A valid URL doesn't have to use a FQDN - it can use just a host name. protocol://host:port/path/filename.foo?arguments
Protocol and host name are the only things required to initiate a connection, only critical part on the host name is that the client has to be able to resolve it - hosts file, dns, dns with appended search domain(s), etc
If any of the other commenters feel the need to edit, etc. feel free.
The client does not need to be able to resolve a host name in order for a URL to be valid.
– Paul
Nov 16 '18 at 6:01
add a comment |
OK, so lots of comments later with some digression and no posted answer.
Therefore...
A valid URL doesn't have to use a FQDN - it can use just a host name. protocol://host:port/path/filename.foo?arguments
Protocol and host name are the only things required to initiate a connection, only critical part on the host name is that the client has to be able to resolve it - hosts file, dns, dns with appended search domain(s), etc
If any of the other commenters feel the need to edit, etc. feel free.
The client does not need to be able to resolve a host name in order for a URL to be valid.
– Paul
Nov 16 '18 at 6:01
add a comment |
OK, so lots of comments later with some digression and no posted answer.
Therefore...
A valid URL doesn't have to use a FQDN - it can use just a host name. protocol://host:port/path/filename.foo?arguments
Protocol and host name are the only things required to initiate a connection, only critical part on the host name is that the client has to be able to resolve it - hosts file, dns, dns with appended search domain(s), etc
If any of the other commenters feel the need to edit, etc. feel free.
OK, so lots of comments later with some digression and no posted answer.
Therefore...
A valid URL doesn't have to use a FQDN - it can use just a host name. protocol://host:port/path/filename.foo?arguments
Protocol and host name are the only things required to initiate a connection, only critical part on the host name is that the client has to be able to resolve it - hosts file, dns, dns with appended search domain(s), etc
If any of the other commenters feel the need to edit, etc. feel free.
answered Nov 16 '18 at 3:13
ivanivanivanivan
1,683268
1,683268
The client does not need to be able to resolve a host name in order for a URL to be valid.
– Paul
Nov 16 '18 at 6:01
add a comment |
The client does not need to be able to resolve a host name in order for a URL to be valid.
– Paul
Nov 16 '18 at 6:01
The client does not need to be able to resolve a host name in order for a URL to be valid.
– Paul
Nov 16 '18 at 6:01
The client does not need to be able to resolve a host name in order for a URL to be valid.
– Paul
Nov 16 '18 at 6:01
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53328847%2fwhy-is-filter-var-with-filter-validate-url-showing-this-string-as-a-valid-url%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
4
That is, in fact, a valid URL.
– Paul
Nov 15 '18 at 22:46
Whats your problem with this url? Is it because, it's only a tld?
– Philipp
Nov 15 '18 at 22:51
2
What makes a URL valid is whether or not it is accordance with the spec, rfc 3986 (though I believe FILTER_VALIDATE_URL still uses the older rfc 2396, the differences are irrelevant here.)
– Paul
Nov 15 '18 at 23:19
2
Try calling
parse_url()
and performing additional validation steps on the individual pieces. Be warned: You seem to have quite a few incorrect assumptions about what valid URLs and hostnames can look like.– Sammitch
Nov 16 '18 at 0:05
1
@FunkFortyNiner as others have stated, a valid URL doesn't have to use a FQDN - it can use just a host name.
protocol://host:port/path/filename.foo?arguments
Protocol and host name are the only things required to initiate a connection, only critical part on the host name is that the client has to be able to resolve it - hosts file, dns, dns with appended search domain(s), etc ...– ivanivan
Nov 16 '18 at 2:13