检查当前域和PHP变量+;压缩码
我要做的是检查当前域中的2个不同域+一些变量,因此目前我有以下内容:检查当前域和PHP变量+;压缩码,php,Php,我要做的是检查当前域中的2个不同域+一些变量,因此目前我有以下内容: if ( $_SERVER['HTTP_HOST']=="http://example1.com" && $var1 || $_SERVER['HTTP_HOST']=="http://example1.com" && $var2 || $_SERVER['HTTP_HOST']=="http://example1.com" && $var3) {
if ( $_SERVER['HTTP_HOST']=="http://example1.com" && $var1 ||
$_SERVER['HTTP_HOST']=="http://example1.com" && $var2 ||
$_SERVER['HTTP_HOST']=="http://example1.com" && $var3) {
header("Location: page1.php?". $_SERVER['QUERY_STRING']);
}
elseif ( $_SERVER['HTTP_HOST']=="http://example2.com" && $var1 ||
$_SERVER['HTTP_HOST']=="http://example2.com" && $var2 ||
$_SERVER['HTTP_HOST']=="http://example2.com" && $var3 ) {
header("Location: page2.php?". $_SERVER['QUERY_STRING']);
}
else { echo "..."
}
我每个变量只有3个,但总共有10个,所以压缩这段代码的最佳方法是什么,这样我就不用使用这么多行代码了?我认为您不需要每次都使用HTTP条件
$else = false;
if($var1 or $var2 or $var3) {
if($_SERVER['HTTP_HOST'] == "http://example1.com") {
header("Location: page1.php?". $_SERVER['QUERY_STRING']);
} elseif($_SERVER['HTTP_HOST']=="http://example2.com") {
header("Location: page2.php?". $_SERVER['QUERY_STRING']);
} else {
$else = true;
}
} else {
$else = true;
}
if($else) {
echo "...";
}
if($var1 || $var2 || $var3) {
if(strpos($_SERVER['HTTP_HOST'], "example1.com") !== false) {
header("Location: page1.php?". $_SERVER['QUERY_STRING']);
} elseif(strpos($_SERVER['HTTP_HOST'],"example2.com") !== false) {
header("Location: page2.php?". $_SERVER['QUERY_STRING']);
}
}
或者你可以在两行中完成
if(strpos($_SERVER['HTTP_HOST'], "example1.com") !== false && ($var || $var2 || $var3) {
header("Location: page1.php?". $_SERVER['QUERY_STRING']);
}
在Joe Bobby的代码中,如果var1、var2、var3都不是真的,那么else代码也会运行。是的,那么这是我们两个答案的混合。@Stony得到错误
Parse error:syntax error,意外的“&&”
,底部代码。我用1$var
尝试了jsut,看看这是否能解决任何问题,但没有解决
$domain = $_SERVER['HTTP_HOST'];
if($domain == 'http://example1.com' && ($var1 || $var2 || $var3)){
header("Location: page1.php?". $_SERVER['QUERY_STRING']);
}elseif( $domain == 'http://example2.com' && ($var1 || $var2 || $var3)){
header("Location: page2.php?". $_SERVER['QUERY_STRING']);
}else{
echo "..."
}