0

我想在我的网站上快速搜索。如果输入了一个值并与我的首选关键字匹配,它会将您重定向到该页面。

到目前为止,这是我得到的:

<form method="get" action="redirect.php" > 
<input id="search" name="search" type="text" value="Search Here" />
<input name="submit" type="submit" value="Go" />
</form>


<?php

 if(isset($_GET['submit']));

 $product1_keywords = array('animal feeds', 'weanrite', 'Wean Rite');
 // my preffered keywords


 $search = $_GET['search'];
 // caller of entered value on text field  ???


if ($search = $product1_keywords) {
// if value of text field is matched with my preferred keywords


    // Redirect page if match
header('Location: http://localhost/equalivet_2/#products/wean_rite.html');
}

else {

// Redirect page if not match
header('Location: http://localhost/equalivet_2/not_found.html');
}

    ?>

请帮帮我。谢谢你。

4

7 回答 7

2

我认为你正在寻找的是in_array你会使用这样的:

<?php

if(isset($_GET['submit']));

$product1_keywords = array('animal feeds', 'weanrite', 'Wean Rite');
// my preferred keywords

$search = $_GET['search']; 
// caller of entered value on text field  ???

if(in_array($search , $product1_keywords)) {

  // if value of text field is matched with my preferred keywords

  // Redirect page if match
  header('Location: http://localhost/equalivet_2/#products/wean_rite.html');

} else {

  // Redirect page if not match
  header('Location: http://localhost/equalivet_2/not_found.html');

}

?>
于 2012-09-28T05:01:12.103 回答
0

你可以使用 php 的 in_array 函数,看看这个链接 http://php.net/manual/en/function.in-array.php

于 2012-09-28T05:02:15.793 回答
0

您将不得不使用in_array()函数来搜索提供的输入是否与您指定的关键字列表匹配。

in_array — 检查一个值是否存在于数组中

于 2012-09-28T05:02:45.960 回答
0

您需要in_array检查搜索文本

<?php

 if(isset($_GET['submit']));

 $product1_keywords = array('animal feeds', 'weanrite', 'Wean Rite');
 // my preffered keywords


 $search = $_GET['search'];
 // caller of entered value on text field  ???


if(in_array($search , $product1_keywords)) {
// if value of text field is matched with my preferred keywords


    // Redirect page if match
header('Location: http://localhost/equalivet_2/#products/wean_rite.html');
}

else {

// Redirect page if not match
header('Location: http://localhost/equalivet_2/not_found.html');
}

    ?>
于 2012-09-28T05:02:48.937 回答
0

您在这一行有一个逻辑问题:

if ($search = $product1_keywords) {

它应该==代替=; 但是,这并不能回答您的问题。

如果我理解正确,您只是想根据用户输入的关键字重定向用户。我建议更新您的关键字数组以包含您想要将用户重定向到多合一的关键字和 URL:

$product1_keywords = array(
    'animal feeds' => '/url1',
    'weanrite' => '/url2',
    'wean rite' => '/url3'
);

然后,循环并检查输入的关键字(忽略任何大小写):

$search = strtolower($_GET['search']);
foreach ($product1_keywords as $keyword => $url) {
    if ($search == $keyword) {
        // we found a keyword match!
        header($url);
        die();
    }
}
// if it makes it here, they didn't match a keyword
header('/not-found.html');
die();

如果所有关键字都指向同一个 URL,您可以将它们全部设置为$product1_keywords数组中的同一个 URL -或者- 您可以使用 PHP 的in_array()方法进行更快的查找:

$search = strtolower($_GET['search']);
$url = in_array($search, $product1_keywords) ? '/url-found' : '/not-found.html';
header($url);
die();
于 2012-09-28T05:03:26.447 回答
0

您可以使用以下代码:

<?php
$test1 = "hi";
$test2 = array("hi","hello");

for($i = 0; $i<sizeof($test2);$i++)
{
similar_text($test1, $test2[$i], $percent); 
    if($percent==100)
        echo "Match found";
}

?>

于 2012-09-28T05:20:20.990 回答
0

谢谢大家。

如果您有多种产品,我会添加解决方案:

 <?php

 if(isset($_GET['submit']));


 $product1_keywords = array('feeds', 'weanrite', 'Wean Rite');

 $product2_keywords = array('gro rite', 'Gro Rite', 'grorite', 'growing feeds');

 $product3_keywords = array('rite start', 'Rite Start', 'starter feed');



 $search = $_GET['search']; 
  // caller of entered value on text field  ???


  if(in_array($search , $product1_keywords)) {

    // if value of text field is matched with my preferred keywords

    // Redirect page if match
   header('Location: http://localhost/equalivet_2/#products/wean_rite.html');

  } 

  elseif(in_array($search , $product2_keywords)) {

  header('Location: http://localhost/equalivet_2/#products/gro_rite.html');

  }
  elseif(in_array($search , $product3_keywords)) {

  header('Location: http://localhost/equalivet_2/#products/rite_start.html');

  }



  else {

 // Redirect page if not match
  header('Location: http://localhost/equalivet_2/equalivet/not_found.html');

  }

  die;
  ?>

谢谢你。我希望这会帮助那些可能需要这篇文章的人

于 2012-09-29T05:16:12.997 回答