2

少し変更したPHP検索スクリプトがあり、うまく機能します。しかし、どうすればよいかわからない部分が 1 つあります。それは、ユーザーが完了することができる検索フォームにスクリプトをリンクすることです。

スクリプトは以下のとおりで、テキスト ファイルからキーワードを検索します。現在、「キーワード」はスクリプトに直接入力されています。しかし、それは私のサイトを訪れる人にとっては良くないので、検索フォームを作成したいと思いました. しかし、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 に答える