PHP:如何创建将链接到我的搜索脚本的搜索表单

时间:2012-04-10 03:02:14

标签: php forms search

我有一个PHP搜索脚本,我稍微修改过,对我来说效果很好。但有一部分我不知道该怎么做,这是将脚本链接到用户可以完成的搜索表单。

脚本如下,它在文本文件中搜索关键词。目前,“关键词”直接输入到脚本中。但这对访问我网站的人来说并不好 - 所以我想创建一个搜索表单。但不确定我是否应该使用POST或GET或其他东西。我不知道如何将代码从表单链接到下面的脚本。我已经搜索了相当多的时间来找到它,但是看不到任何覆盖它的东西,我试图将它连接起来并不顺利。如果有人能提供帮助,那将非常感激。

(从Lekensteyn借来的原始代码 - https://stackoverflow.com/a/3686246/1322744(谢谢))

<?php
$file = 'users.txt';
$searchfor = 'entersearchterm';

$contents = file_get_contents($file);
$pattern = preg_quote($searchfor, '/');
$pattern = "/^.*$pattern.*\$/m";

if(preg_match_all($pattern, $contents, $matches)){
   echo "Found matches:<br />";
   echo implode("<br />", $matches[0]);
}
else{
   echo "No matches found";
fclose ($file); 
}
?>

1 个答案:

答案 0 :(得分:3)

代码(一个粗略的想法):

<html>
      <head><title>Search Form</title></head>
      <body>
            <form action="search.php" method="GET">
                   <input type="text" name="keyword" id="keyword width="50" value="" />
                   <input type="submit" value="Search"/>
            </form>
      </body>
</html>

从您的PHP脚本中获取关键字:

<?php
// script.php


$searchfor = $_GET['keyword'];

$file = 'users.txt';

$contents = file_get_contents($file);
$pattern = preg_quote($searchfor, '/');
$pattern = "/^.*$pattern.*\$/m";

if(preg_match_all($pattern, $contents, $matches)){
   echo "Found matches:<br />";
   echo implode("<br />", $matches[0]);
}
else{
   echo "No matches found";
fclose ($file); 
}
?>