当我搜索短语" xperia"在我的网站上,网址格式变为:
domain.com/?s=xperia
然后我使用此代码来显示 sony 特定的侧边栏。同样适用于 nokia
<?php
if ( isset($_GET['s']) && $_GET['s']=="xperia") {
get_sidebar('sony');
} else {
if ( isset($_GET['s']) && $_GET['s']=="nokia") {
get_sidebar('nokia');
} else {
get_sidebar('left');
}
}
但是,如果有人搜索其他内容,我还希望显示 sony 侧边栏(但该短语包含关键字&#34; xperia&#34;)例如&#34; xperia z2& #34;
domain.com/?s=xperia+z2
是否可以修改此['s']=="xperia"
以包含一种xperia *规则?
答案 0 :(得分:3)
使用strpos
:
if(isset($_GET['s'] && strpos($_GET['s'], 'nokia') !== false)
答案 1 :(得分:1)
如果搜索字符串为空,请使用empty()
。然后stripos()
将执行不区分大小写的搜索:
if ( empty($_GET['s']) === false && stripos($_GET['s'], 'xperia') !== false) {
get_sidebar('sony');
} elseif ( empty($_GET['s']) === false && stripos($_GET['s'], 'nokia') !== false) {
get_sidebar('nokia');
} else {
get_sidebar('left');
}
我还使用elseif
来使代码更具可读性。
答案 2 :(得分:0)
对于部分匹配,尤其是不精确或松散匹配,您可能会发现fnmatch()函数有用