1

私のサイトの検索結果ページを作成する際にあなたの助けが必要です。その単純なphpcmsサイトは、単にmysqlからコンテンツをフェッチします。単純なクエリを使用して検索を取得する

$search = $_GET["search"];
$search = preg_replace('#[^0-9]#i','',$_GET['search']);

$searchresult = mysql_query ("SELECT * FROM pages WHERE pgcontent LIKE '%$search%'");   

    while ($row = mysql_fetch_array($searchresult)) 
    {
        echo '<h3>' . $row["PageTitle"] . '</h1>';
        echo '<p>' . $row["PageContent"] . '</p><br /><br />';  
    }

私がやりたいのは、ページのコンテンツ全体を表示するのではなく、単語が検索語と一致する行だけを表示するか、検索語が見つかったページの最初の数行だけを表示することです。

友達は私がこれをするのを手伝ってくれませんか?それは大きな恩恵になります...ありがとう

4

1 に答える 1

3

後処理を実行できます$row["PageContent"]

何かのようなもの

while ($row = mysql_fetch_array($searchresult)) 
{
    echo '<h3>' . $row["PageTitle"] . '</h3>';

    $position = strpos($row["PageContent"], $search);
    $snippet = substr($row["PageContent"], $position - 100, $position + 100);

    echo '<p>' . $snippet . '</p>';
    echo '<br /><br />';  
}

一致した用語の先頭から 100 文字のスニペットを開始し、用語の先頭から 100 文字後にスニペットを終了します。明らかに、これを好きなように調整しますが、これが基本的な考え方です。

ポイントを逃した場合はお知らせください。更新する場合があります。

于 2013-02-13T20:16:31.867 に答える