IP 验证 & URL 验证 if elseif 语句?
IP Validation & URL Validation if elseif statement?
编辑。
知道为什么这行不通吗?我添加了 'FILTER_FLAG_NO_PRIV_RANGE' 标志,我还添加了一个检查以查看是否输入了本地主机(也许还有另一种方法,当我阅读它时说 'FILTER_FLAG_NO_PRIV_RANGE' 不过滤它),但它似乎没有上班。
$post_input = 'google.com'; // IP or a URL goes here
$targets = array("localhost", "127.0.0.1", "127.1"); // The array of words / values
if (!filter_var($post_input, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)
// The above validates IP, FILTER_FLAG_NO_PRIV_RANGE is so 192.168.1.1 etc do not work (but it is nto working).
&& filter_var($post_input, FILTER_VALIDATE_URL)
// The above validates IP, this is fine.
&& in_array($post_input, $targets))
// The above checks against the array above, if the input contains this, do not continue, go to 'Invalid IP or URL'.
{
echo 'Invalid IP or URL';
} else {
echo 'good';
}
注意:我删除了“!”对于 URL 验证,如果您想知道,那是故意的。
// -------------------------------------- ------
我知道我这样做不正确,但我不知道我该怎么做。
我希望输入是 IP 或 URL。如果是 IP,它会检查它是否有效,然后跳过 URL 验证。如果它是 URL,它将得到验证,然后跳过 IP 验证
有没有简单的方法来做到这一点?
$post_data = '216.58.216.174';
$post_data = 'http://google.com'; // Could also be this
if (!filter_var($post_data, FILTER_VALIDATE_IP)) { /* Validate IP */
echo 'Invalid IP';
}elseif (!filter_var($post_data, FILTER_VALIDATE_URL)) { /* Validate URL */
echo 'Invalid URL';
}else {
echo 'All Good';
}
我想一定是这样的:
if (filter_var($post_data, FILTER_VALIDATE_IP)) { /* Validate IP */
echo 'This is valid IP';
}elseif (filter_var($post_data, FILTER_VALIDATE_URL)) { /* Validate URL */
echo 'This is valid URL';
}else {
echo 'This is not either IP or URL';
}
试试这个方法:
if (!filter_var($post_data, FILTER_VALIDATE_IP) && !filter_var($post_data, FILTER_VALIDATE_URL)) { /* Validate IP */
echo 'Invalid IP or URL';
} else {
echo 'All Good';
}
检查您的编辑,您应该尝试以下操作:
$post_input = 'http://google.com';
$targets = array("localhost", "127.0.0.1", "127.1");
if ((!filter_var($post_input, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)
&& !filter_var($post_input, FILTER_VALIDATE_URL))
|| in_array($post_input, $targets))
{
echo 'Invalid IP or URL';
} else {
echo 'good';
}
小心,google.com
不会用 FILTER_VALIDATE_URL
验证,http://google.com
会。
这样,结果如下:
http://google.com
→ 好。
192.168.0.1
→ 无效 IP 或 URL.
69.23.43.12
或任何有效的 IP → 好。
- 数组内容 → 无效 IP 或 URL.
编辑。
知道为什么这行不通吗?我添加了 'FILTER_FLAG_NO_PRIV_RANGE' 标志,我还添加了一个检查以查看是否输入了本地主机(也许还有另一种方法,当我阅读它时说 'FILTER_FLAG_NO_PRIV_RANGE' 不过滤它),但它似乎没有上班。
$post_input = 'google.com'; // IP or a URL goes here
$targets = array("localhost", "127.0.0.1", "127.1"); // The array of words / values
if (!filter_var($post_input, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)
// The above validates IP, FILTER_FLAG_NO_PRIV_RANGE is so 192.168.1.1 etc do not work (but it is nto working).
&& filter_var($post_input, FILTER_VALIDATE_URL)
// The above validates IP, this is fine.
&& in_array($post_input, $targets))
// The above checks against the array above, if the input contains this, do not continue, go to 'Invalid IP or URL'.
{
echo 'Invalid IP or URL';
} else {
echo 'good';
}
注意:我删除了“!”对于 URL 验证,如果您想知道,那是故意的。
// -------------------------------------- ------
我知道我这样做不正确,但我不知道我该怎么做。
我希望输入是 IP 或 URL。如果是 IP,它会检查它是否有效,然后跳过 URL 验证。如果它是 URL,它将得到验证,然后跳过 IP 验证
有没有简单的方法来做到这一点?
$post_data = '216.58.216.174';
$post_data = 'http://google.com'; // Could also be this
if (!filter_var($post_data, FILTER_VALIDATE_IP)) { /* Validate IP */
echo 'Invalid IP';
}elseif (!filter_var($post_data, FILTER_VALIDATE_URL)) { /* Validate URL */
echo 'Invalid URL';
}else {
echo 'All Good';
}
我想一定是这样的:
if (filter_var($post_data, FILTER_VALIDATE_IP)) { /* Validate IP */
echo 'This is valid IP';
}elseif (filter_var($post_data, FILTER_VALIDATE_URL)) { /* Validate URL */
echo 'This is valid URL';
}else {
echo 'This is not either IP or URL';
}
试试这个方法:
if (!filter_var($post_data, FILTER_VALIDATE_IP) && !filter_var($post_data, FILTER_VALIDATE_URL)) { /* Validate IP */
echo 'Invalid IP or URL';
} else {
echo 'All Good';
}
检查您的编辑,您应该尝试以下操作:
$post_input = 'http://google.com';
$targets = array("localhost", "127.0.0.1", "127.1");
if ((!filter_var($post_input, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)
&& !filter_var($post_input, FILTER_VALIDATE_URL))
|| in_array($post_input, $targets))
{
echo 'Invalid IP or URL';
} else {
echo 'good';
}
小心,google.com
不会用 FILTER_VALIDATE_URL
验证,http://google.com
会。
这样,结果如下:
http://google.com
→ 好。192.168.0.1
→ 无效 IP 或 URL.69.23.43.12
或任何有效的 IP → 好。- 数组内容 → 无效 IP 或 URL.