PHP で複数キーワードのハイライトを実装する方法をご覧ください
実装コード:
conn.php
???
??? $conn = @ mysql_connect("localhost", "root", "") または die("データベース リンク エラー");?
??? mysql_select_db("フォーム", $conn);?
??? mysql_query("名前を設定 'gbk'");??
????>
searchAndDisplayWithColor.php
?
?
???
???「conn.php」を含めます;?
????>
??? <テーブル幅=500 align="center">
???????<フォームアクション=""メソッド="get">
???????
??????????
キーワード:
?????????? |
???????
???????
????テーブル>
??????
????
????????? セルスペース = "1" bgcolor = "#add3ef" >?
???????
????????? //関連検索はキーワードが空でない場合にのみ実行されます?
???????if($_GET['keyWord']){?
????????? //キーワードはスペースで区切りますか?
???????$key=explode(' ', $_GET[keyWord]);?
?????????? $sql="タイトルが「$key[0]」、タイトルが「$key[1]」、内容が「$key[0]」、または内容が ' のメッセージから * を選択%$key[1]%'";?
???????$query=mysql_query($sql);?
???????while ($row=mysql_fetch_array($query)){?
???????????? // キーワードを置換してキーワードを強調表示しますか?
???????????? $row[title]=preg_replace("/$key[0]/i", "
$key[0]< /b>", $row[title]);?
???????????? $row[title]=preg_replace("/$key[0]/i", "
$key[1]< /b>", $row[title]);?
???????????? $row[content]=preg_replace("/$key[0]/i", "
$key[0]< /b>", $row[content]);?
???????????? $row[content]=preg_replace("/$key[1]/i", "
$key[1]< /b>", $row[content]);?
?????????????>
??????
???????
??????????タイトル:=$row[title]?>ユーザー:=$row[user] ?>?
??????????
?????????? |
???????
???????
??????????コンテンツ:=$row[content]?> |
???????
???????
??????????
??????????公開日:=$row[lastdate]?>
?????????? |
???????
???????
??????????>
????
注: この小さなプログラムでは、同時に 2 つのキーワードしか検索できず、「big」
のように 1 つのキーワードのみを検索する場合、それらのキーワードはスペース " " で区切られるという欠点があります。
表示すると文字化けが発生します...^|_|^。これは、次のコードの結果です:
???? //キーワードはスペースで区切りますか?
???? $key=explode(' ', $_GET[keyWord]);
改善したい場合は、後でここで判断する必要があります。