if(strpos($ _ SERVER ['REQUEST_URI'],'/')=== TRUE)不起作用

时间:2014-05-12 16:17:06

标签: php wordpress

if( strpos($_SERVER['REQUEST_URI'], '/') === TRUE)不起作用。

我想要的是在主页上实现的目标,例如http://www.amazon.co.uk/它会触发声明中的内容。

这可能因为这是另一个页面的重定向而变得复杂

的var_dump($ _ SERVER [ 'REQUEST_URI']); = / string(1) echo $ _SERVER ['REQUEST_URI']; =“/”

php version 5.4

感谢您的帮助,我已修复了我的问题

3 个答案:

答案 0 :(得分:5)

这是因为,就像文档告诉你的那样,strpos()永远不会返回true。

它返回一个正整数(找到)或布尔值false(未找到)。

请检查!== false

答案 1 :(得分:1)

strpos()函数返回表示第一个字符串中第二个字符串位置的数值。因此它永远不会等于TRUE。

如果找不到字符串,

strpos()可以返回FALSE,因此你应该写

if( strpos($_SERVER['REQUEST_URI'], '/') !== FALSE)

答案 2 :(得分:0)

strpos()来自手册:

  

strpos - 在a中查找第一次出现的子字符串的位置   串

所以你要检查返回是否为TRUE,它永远不会。你需要检查它!== FALSE。为什么?因为===检查值和变量的类型。当你执行==时它将只检查值,当值为0时,PHP将把它转换为FALSE,因为PHP是松散类型的。