我尝试使用文本值和html表单文本框四个变量来输出哪些变量包含哪个变量。我做了一个非常残酷的方法,我对PHP很新,所以我确信有一个更有效的方法,所以我认为最好问。这是我目前拥有的方法,但当然只有在知道变量是什么时才有效。
<?
$a = 'A = how are you today';
$b = 'B = how are you';
$c = 'C = how are';
$d = 'D = how';
if(isset($_POST["searchSub"])){
$search = $_POST['searchTb'];
if ($search == 'today'){
echo 'Results: <br>'.$a;
}
if ($search == 'you'){
echo 'Results: <br>'.$a.'<br>'.$b;
}
if ($search == 'are'){
echo 'Results: <br>'.$a.'<br>'.$b.'<br>'.$c;
}
if ($search == 'how'){
echo 'Results: <br>'.$a.'<br>'.$b.'<br>'.$c.'<br>'.$d;
}
}
?>
答案 0 :(得分:1)
不是构建搜索表单以检查特定单词是否在搜索查询中,为什么不拆分正在搜索的值 - 那么您将知道该字符串中的每个单词。这可以通过在空格中使用 explode()
来完成:
if(isset($_POST["searchString"])) {
$words = explode(" ", $_POST["searchString"]);
}
这允许您循环遍历字符串中的每个单词,然后检查它是否与所需的文本匹配。在以下示例中,我使用if (in_array())
执行此操作:
$target = array("how", "are", "you", "today");
foreach ($words as $word) {
if (in_array($word, $target)) {
echo "Match: " . $word . "<br />" . PHP_EOL;
}
}
结合起来,这看起来像是:
$target = array("how", "are", "you", "today");
if(isset($_POST["searchString"])) {
$words = explode(" ", $_POST["searchString"]);
foreach ($words as $word) {
if (in_array($word, $target)) {
echo "Match: " . $word . "<br />" . PHP_EOL;
}
}
}
希望这有帮助! :)