【发布时间】:2019-03-15 13:29:54
【问题描述】:
我遇到了麻烦,因为我不知道如何找到我的答案。 我正在创建一个 wordpress 网站,并且我有一个搜索引擎
我在我的管理面板中创建了一个选项,并在我的选项表中编写了一些代码,但我现在的问题是
首先我用
从我的数据库中获取我的选项$mysynonymvalue = get_option( 'synonym-custom' );
我准确地说它返回给我的是这样的东西(芒果、苹果、香蕉)(当然这是一个例子)
我的网址是这样的:
http://supserwebsite/wordpress/?sfid=2675&_sf_s=toto
或者这个
http://superwebsite/wordpress/?sfid=2675&_sf_s=virtualisation云开发
所以我创建了一个变量来捕获查询
$motsclefs3= $_GET['_sf_s'];
现在我想比较字符串 $mysynonymvalueconvert 和 $motsclefs3 以查找它是否匹配所以我写了
if (strpos ($mysynonymvalue, $motsclefs3) ){
echo '<script >
$(document).ready(function(){
$(".vc-tabs-li:nth-child(2)").get(0).click();
});
</script>';
}
else{
echo '
<script >
$(document).ready(function(){
$(".vc-tabs-li").get(0).click();
});
</script>';
};
};
该解决方案似乎工作正常,但我无法获得第一个结果,它确实与所有结果相比,但不是我的第一个结果。
而且它不能很好地工作,因为只有一个字母它会返回一个匹配项(例如'a')
有什么解决办法吗? 谢谢
【问题讨论】:
-
您为什么使用
strpos作为相等性检查?===更干净、更快捷。此外,您的 echo 语句已被注释掉,但似乎超过了两行,这意味着您的 PHP sn-p 无效。 -
我删除了实际上没用的foreach,但是我使用strpos来比较字符串元素,因为$mysynonymvalue可以有多个数据而不仅仅是一个,我也修改了我的回显,但仍然不是我的预计^^'
-
所以你有
mango, apple, banana作为一个字符串值,现在你正在尝试检查它是否包含 f.e.apple?那么explode第一个值,这样你就可以得到一个包含单个单词的正确数组,然后使用in_array进行检查。 -
事实上我尝试了类似 $myvariable = explode(' ', $motsclefs3);并修改我的“if”,使其看起来像“if (in_array($myvariable, $mysynonymvalue))”,但结果相同
标签: php wordpress for-loop strpos