Php 与操作员一起爆炸
我有一个工作代码来限制和验证子域Php 与操作员一起爆炸,php,operators,explode,Php,Operators,Explode,我有一个工作代码来限制和验证子域 $exp = explode('.', 'blog.mydomain.my.'); print_r($exp); if(count($exp) == 3 && $exp[1] == "mydomain" && $exp[2] == "my" || $exp[3] == "") { echo "<br>"; echo 'subdomain valid'; } else{ echo "<
$exp = explode('.', 'blog.mydomain.my.');
print_r($exp);
if(count($exp) == 3 && $exp[1] == "mydomain" && $exp[2] == "my" || $exp[3] == "") {
echo "<br>";
echo 'subdomain valid';
} else{
echo "<br>";
echo 'not valid';
}
接受的子域编号为hello.mydomain.my
或hello.mydomain.my.
(带尾随点)。而hello.world.mydomain.my
不被接受
提前感谢这会给你想要的
if(count($exp2) < 3 || count($exp2) > 4 || $exp2[1] != "mydomain" || $exp2[2] != "my" || (count($exp2) != 4 && $exp[3] != "")) {
echo "<br>";
echo 'not valid';
}
if(count($exp2)<3 | count($exp2)>4 |$exp2[1]!=“mydomain”|$exp2[2]!=“my”| |(count($exp2)!=4&$exp[3]!=”){
回声“
”;
回音“无效”;
}
这会给你想要的
if(count($exp2) < 3 || count($exp2) > 4 || $exp2[1] != "mydomain" || $exp2[2] != "my" || (count($exp2) != 4 && $exp[3] != "")) {
echo "<br>";
echo 'not valid';
}
if(count($exp2)<3 | count($exp2)>4 |$exp2[1]!=“mydomain”|$exp2[2]!=“my”| |(count($exp2)!=4&$exp[3]!=”){
回声“
”;
回音“无效”;
}
我会选择正则表达式解决方案,甚至可能将其封装在函数中:
function isValidDomain($domain)
{
return preg_match('/^[\w]+\.(mydomain)\.(my)\.?$/', $domain) ? true : false;
}
var_dump(isValidDomain('www.google.com'));
var_dump(isValidDomain('test.invalid.domain'));
var_dump(isValidDomain('hello.mydomain.my'));
var_dump(isValidDomain('hello.mydomain.my.'));
我会选择正则表达式解决方案,甚至可能将其封装在函数中:
function isValidDomain($domain)
{
return preg_match('/^[\w]+\.(mydomain)\.(my)\.?$/', $domain) ? true : false;
}
var_dump(isValidDomain('www.google.com'));
var_dump(isValidDomain('test.invalid.domain'));
var_dump(isValidDomain('hello.mydomain.my'));
var_dump(isValidDomain('hello.mydomain.my.'));
错误到底是什么?代码不起作用了吗?我觉得要么你应该检查一下count($exp2)!=4
或者您应该去掉最后一个条件,就像计数是3一样。最后一个条件应该超出范围。错误到底是什么?代码不起作用了吗?我觉得要么你应该检查一下count($exp2)!=4
或者你应该去掉最后一个条件,就像计数是3一样。最后一个条件应该超出范围为什么不是正则表达式$valid=preg_match('/^hello\.domain\.my\.?$/',$domain)?真:假@AlexP使用不同的子域模式也可以工作。你应该改进并将其作为一个答案发布…我只是想理解你的代码。。如果语句的一个符合条件,并且要有效,则子域将无效
。所有语句都不能符合条件?为什么不使用regex$valid=preg_match('/^hello\.domain\.my\.?$/',$domain)?真:假@AlexP使用不同的子域模式也可以工作。你应该改进并将其作为一个答案发布…我只是想理解你的代码。。如果语句的一个与标准匹配,并且所有语句都不能与标准匹配,则子域将是无效的
。我认为目的是让任何子域都匹配,所以可能是'/^[\w]+\(mydomain)\(my)\.?$/'
是任何与我的域匹配的子域。我认为目的是让任何子域匹配,因此可能是'/^[\w]+\.(mydomain)\.(my)\.?$/'
是任何与我的域匹配的子域。