2017-07-28 83 views
-4

我想在一个页面addtohomescreen.php只有在下列条件的逻辑:基本PHP如果多个语句

  1. $ua !== 'sattamatka.pro' - >真
  2. $ua !== 'sattamatka.android' - >真
  3. stripos($ua,'android') == true) - >真

注意:对于条件1 & 2如果其中一个是真的,另一个会自动变为false。

我使用以下逻辑:

<?php 
if($ua !== 'sattamatka.pro' 
|| $ua !== 'sattamatka.android' 
&& stripos($ua,'android') == true) { 
include "addtohomescreen.php"; 
} 
?> 

注:我希望所有的人都如此。但是,如果我使用&&代替||,则两条语句 - $ua !== 'sattamatka.pro'$ua !== 'sattamatka.android'都将变为false,并且addtohomescreen.php包含在$ua中。

编辑:中$ua可能的瓦莱斯是:

  1. sattamatka.pro
  2. sattamatka.android
  3. mozilla/5.0 (linux; u; android 6.0.1; en-us; redmi note 3 build/mmb29m) applewebkit/534.30 (khtml, like gecko) version/4.0 ucbrowser/11.2.5.932 u3/0.8.0 mobile safari/534.30

更新:问题是为$ua = 'sattamatka.pro'$ua = 'sattamatka.android'声明if(($ua !== 'sattamatka.pro') && ($ua !== 'sattamatka.android') && (stripos($ua,'android') == true))返回false。这已通过将()添加到($ua !== 'sattamatka.pro') || ($ua !== 'sattamatka.android') &中解决,现在代码可按预期工作。我不需要任何更多的建议。感谢您的时间。

+3

'&&'而不是'||'? –

+1

用'&&'替换'||' –

+0

因此,如果条件1为真,你需要做些什么***和***条件2是真的***和***条件3是真的?那么你为什么使用*或*运算符'''? –

回答

0

我已经解决了这个问题,通过增加()前两个语句:

<?php 
    $ua = strtolower($_SERVER['HTTP_USER_AGENT']); 
    if(($ua !== 'sattamatka.pro' 
    || $ua !== 'sattamatka.android') 
    && stripos($ua,'android') == true) { 
    include "addtohomescreen.php"; 
    } 
    else {} 
    ?> 

工作就像一个魅力!

+1

你知道上面的语句和'if(stripos($ ua,'android')== true)'是一样的吗?第一组将_always_返回true,因为'$ ua'将至少不等于两个检查中的一个。 –

+0

@MagnusEriksson你不明白。让我用简单的语言给你解释一下。如果$ ua是'sattamatka.pro'或'sattamatka.android',我不想包含'addtohomescreen.php',但是如果'$ ua'包含单词'android',我想包含它,前两个陈述必须始终为真,如果不是,则其中一个陈述将变为虚假。 –

+1

而你没有听。第一个检查'($ ua!=='sattamatka.pro'|| $ ua!=='sattamatka.android')'_useless_,因为该块将_always_返回true。无论“$ ua”包含什么,它都不会等于_one_,因此_always_会返回“true”。 –

1

您需要使用&&如果希望所有条件成为true

if(($ua !== 'sattamatka.pro') && ($ua !== 'sattamatka.android') && (stripos($ua,'android') == true)) { 
include "addtohomescreen.php"; 
} 
+0

它与上面已经评论过的有什么不同?对于小的拼写错误或更正,如果可以通过添加评论来实现,则不要添加答案。 –

+0

我希望他们都是真的。但是,如果我用'&&'代替'||',那么'$ ua!=='sattamatka.pro''和'$ ua!=='sattamatka.android''都会变成false并且是addtohomescreen。 php'包含在'$ ua'中 –