隨著即時通訊需求的提升,PHP開發的實時聊天系統逐漸成為網站和應用中的重要模塊。為了提升用戶體驗,聊天記錄搜索功能變得尤為關鍵。本文將介紹如何在PHP聊天系統中構建搜索功能,並將搜索結果以良好的方式展示出來。
我們通過HTML與JavaScript技術創建用戶輸入界面,並使用Ajax異步向後端提交關鍵詞請求,實現無刷新搜索體驗:
<input type="text" id="search-input">
<button onclick="search()">搜尋</button>
<script>
function search() {
var keyword = document.getElementById("search-input").value;
// Ajax请求获取搜尋结果
// ...
}
</script>
後端主要通過PDO操作數據庫,從聊天記錄中篩選包含用戶關鍵詞的內容,最終以JSON形式返回數據:
<?php
// 連接數據庫
$pdo = new PDO('mysql:host=localhost;dbname=chat', 'root', 'password');
// 获取搜尋关键词
$keyword = $_POST['keyword'];
// 執行SQL模糊查詢
$stmt = $pdo->prepare("SELECT * FROM chat_records WHERE content LIKE ?");
$search_keyword = "%{$keyword}%";
$stmt->bindParam(1, $search_keyword);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 返回JSON格式數據
header('Content-Type: application/json');
echo json_encode($results);
獲取後端返回的數據後,前端通過JavaScript動態構建結果列表,展示匹配到的聊天內容:
<ul id="search-results"></ul>
<script>
function search() {
var keyword = document.getElementById("search-input").value;
$.post('/search.php', { keyword: keyword }, function(results) {
var list = "";
for (var i = 0; i < results.length; i++) {
list += "<li>" + results[i].content + "</li>";
}
document.getElementById("search-results").innerHTML = list;
});
}
</script>
只要前端發送請求,PHP後端將響應結果列表數據。完整過程高效、結構清晰,適用於各種即時聊天系統:
<?php
// 連接數據庫
$pdo = new PDO('mysql:host=localhost;dbname=chat', 'root', 'password');
// 獲取關鍵詞
$keyword = $_POST['keyword'];
// 搜尋匹配内容
$stmt = $pdo->prepare("SELECT * FROM chat_records WHERE content LIKE ?");
$search_keyword = "%{$keyword}%";
$stmt->bindParam(1, $search_keyword);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 輸出JSON格式的結果
header('Content-Type: application/json');
echo json_encode($results);
通過本文的講解,我們系統地實現了一個完整的聊天記錄搜索與展示模塊。該功能不僅提升了聊天系統的實用性,也優化了用戶對歷史信息的訪問效率。開發者在構建實時聊天系統時,可以根據上述結構靈活擴展更多交互能力,例如時間篩選、關鍵詞高亮等功能。