Php 请求URL if语句
我是PHP新手,我有以下声明:Php 请求URL if语句,php,Php,我是PHP新手,我有以下声明: if(strpos($_SERVER['REQUEST_URI'],'/')!=-1) { echo '<span>Hello World' .$_SERVER['REQUEST_URI']. '</span>'; } else if(strpos($_SERVER['REQUEST_URI'],'/blog')!=-1) { echo '<span>blog World' .$_SERVER['REQUE
if(strpos($_SERVER['REQUEST_URI'],'/')!=-1) {
echo '<span>Hello World' .$_SERVER['REQUEST_URI']. '</span>';
} else if(strpos($_SERVER['REQUEST_URI'],'/blog')!=-1) {
echo '<span>blog World' .$_SERVER['REQUEST_URI']. '</span>';
} else if(strpos($_SERVER['REQUEST_URI'],'/videos')!=-1) {
echo '<span>videos World' .$_SERVER['REQUEST_URI']. '</span>';
} else if(strpos($_SERVER['REQUEST_URI'],'/about')!=-1) {
echo '<span>about World' .$_SERVER['REQUEST_URI']. '</span>';
} else if(strpos($_SERVER['REQUEST_URI'],'/contact')!=-1) {
echo '<span>contact World' .$_SERVER['REQUEST_URI']. '</span>';
}
if(strpos($\u SERVER['REQUEST\u URI'],'/')!=-1){
回显“Hello World”。$\u服务器[“请求URI]”;
}else if(strpos($\u SERVER['REQUEST\u URI'],'/blog')!=-1){
回显“博客世界”。$\u服务器['REQUEST\u URI'];
}else if(strpos($\u服务器['REQUEST\u URI'],'/videos')!=-1){
回显“视频世界”。$\u服务器['REQUEST\u URI'];
}else if(strpos($\u SERVER['REQUEST\u URI'],'/about')!=-1){
回显“关于世界”。$\u服务器['REQUEST\u URI'];
}else if(strpos($\u SERVER['REQUEST\u URI'],'/contact')!=-1){
回显“联系世界”。$\u服务器[“请求URI]”;
}
我的问题是,每当我去
http://website.com/
我仍然得到结果Hello World
而不是其他结果。知道如何解决这个问题吗?strpos
不返回-1,如果没有匹配项,它将返回false
。因此,您的测试应该是:
if(strpos($_SERVER['REQUEST_URI'],'/') !== false)
等等
(!==和===是更严格的比较运算符,意味着PHP在比较中不会将0等同于false)
您还应该意识到,与“/”的第一次比较将匹配所有实例,因为所有字符串都以“/”开头。因此,你应该把它作为最后一个条件,而不是第一个条件
总的来说,如果您使用更积极的比较,就会更清楚:
if ( strpos($_SERVER['REQUEST_URI'],'/blog') === 0 ) {
echo '<span>blog World' .$_SERVER['REQUEST_URI']. '</span>';
} else if(strpos($_SERVER['REQUEST_URI'],'/videos') === 0) {
echo '<span>videos World' .$_SERVER['REQUEST_URI']. '</span>';
} else if(strpos($_SERVER['REQUEST_URI'],'/about') === 0) {
echo '<span>about World' .$_SERVER['REQUEST_URI']. '</span>';
} else if(strpos($_SERVER['REQUEST_URI'],'/contact') === 0 ) {
echo '<span>contact World' .$_SERVER['REQUEST_URI']. '</span>';
}else if(strpos($_SERVER['REQUEST_URI'],'/') === 0) {
echo '<span>Hello World' .$_SERVER['REQUEST_URI']. '</span>';
} else if( $_SERVER['REQUEST_URI' === '/') {
echo '<span>Hello World' .$_SERVER['REQUEST_URI']. '</span>';
} else {
echo '<span>URL Not matched</span>';
}
if(strpos($\u SERVER['REQUEST\u URI'],'/blog')==0){
回显“博客世界”。$\u服务器['REQUEST\u URI'];
}else if(strpos($\u服务器['REQUEST\u URI'],'/videos')==0){
回显“视频世界”。$\u服务器['REQUEST\u URI'];
}else if(strpos($\u SERVER['REQUEST\u URI'],'/about')==0){
回显“关于世界”。$\u服务器['REQUEST\u URI'];
}else if(strpos($\u SERVER['REQUEST\u URI'],'/contact')==0){
回显“联系世界”。$\u服务器[“请求URI]”;
}else if(strpos($\u SERVER['REQUEST\u URI'],'/')==0){
回显“Hello World”。$\u服务器[“请求URI]”;
}else if($\u服务器['REQUEST\u URI'=='/')){
回显“Hello World”。$\u服务器[“请求URI]”;
}否则{
回显“URL不匹配”;
}
如果字符串与开头的URI匹配(应该匹配)然后返回的索引将完全为0,因此完全匹配将匹配所有发生的事件。我已将您的上一个匹配更改为完全匹配“/”,好像没有匹配,您可能希望返回错误,但您可以在最后的else中使用默认操作。
/blog
,/videos
,…也有//code> 。因此,您选择的url将始终与/
匹配。您可以使用此
if($_SERVER['REQUEST_URI'] === '/') {
echo '<span>Hello World' .$_SERVER['REQUEST_URI']. '</span>';
} else if(strpos($_SERVER['REQUEST_URI'],'/blog')!=-1) {
echo '<span>blog World' .$_SERVER['REQUEST_URI']. '</span>';
} else if(strpos($_SERVER['REQUEST_URI'],'/videos')!=-1) {
echo '<span>videos World' .$_SERVER['REQUEST_URI']. '</span>';
} else if(strpos($_SERVER['REQUEST_URI'],'/about')!=-1) {
echo '<span>about World' .$_SERVER['REQUEST_URI']. '</span>';
} else if(strpos($_SERVER['REQUEST_URI'],'/contact')!=-1) {
echo '<span>contact World' .$_SERVER['REQUEST_URI']. '</span>';
}
if($\u服务器['REQUEST\u URI']=='/')){
回显“Hello World”。$\u服务器[“请求URI]”;
}else if(strpos($\u SERVER['REQUEST\u URI'],'/blog')!=-1){
回显“博客世界”。$\u服务器['REQUEST\u URI'];
}else if(strpos($\u服务器['REQUEST\u URI'],'/videos')!=-1){
回显“视频世界”。$\u服务器['REQUEST\u URI'];
}else if(strpos($\u SERVER['REQUEST\u URI'],'/about')!=-1){
回显“关于世界”。$\u服务器['REQUEST\u URI'];
}else if(strpos($\u SERVER['REQUEST\u URI'],'/contact')!=-1){
回显“联系世界”。$\u服务器[“请求URI]”;
}
因为其他url模式也有/
但如果检查超过了如果检查,则不会运行如果检查?例如,当您转到..../videos时,它将匹配第一个检查。请参阅我的answer@user3352340请投票确认:)