Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 与操作员一起爆炸_Php_Operators_Explode - Fatal编程技术网

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)\.?$/'
是任何与我的域匹配的子域。