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