我的网页网址是http://example.com/blog/
当我回显时,它显示正确的结果为博客。
echo $_SERVER['REQUEST_URI']
>>blog
但是,当我在 if 条件下使用时
<?php if($_SERVER['REQUEST_URI']== 'blog') echo 'class="Margincls"';?>
它不返回任何东西,也尝试使用 basename 和 strtolower
我的网页网址是http://example.com/blog/
当我回显时,它显示正确的结果为博客。
echo $_SERVER['REQUEST_URI']
>>blog
但是,当我在 if 条件下使用时
<?php if($_SERVER['REQUEST_URI']== 'blog') echo 'class="Margincls"';?>
它不返回任何东西,也尝试使用 basename 和 strtolower
如果你的网址是http://example.com/blog/
,$_SERVER['REQUEST_URI']
应该是/blog/
。我检查了我的环境 - Apache,PHP 5.6。
这应该工作
<?php if($_SERVER['REQUEST_URI']== '/blog/') echo 'class="Margincls"';?>
您使用了错误的引文。复制并粘贴这个:
<?php if($_SERVER['REQUEST_URI']== 'blog') echo 'class="Margincls"';?>
<?php if($_SERVER['REQUEST_URI']== "blog") echo 'class="Margincls"';?>
添加双引号解决了这个问题。
我认为您的网站是实时的。如果您仅使用 $_SERVER['REQUEST_URI'] 它将仅在本地主机中工作。
你可以试试这个。
if (strpos($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], '/blog/') == true){
echo "Hello world";
}else{
echo "Hello WOrld 2";
}
$_SERVER['REQUEST_URI'] 也返回第一个正斜杠,所以你需要在相等时检查这个。
<?php if($_SERVER['REQUEST_URI']== '/blog') echo 'class="Margincls"';?>