2

我有一个 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); 
}
?>
4

1 回答 1

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); 
}
?>
于 2012-04-10T03:07:00.597 回答