当前位置:首页 > PHP

php实现搜索实例

2026-02-15 11:50:46PHP

PHP 实现搜索功能

数据库准备

确保有一个数据库表用于存储搜索内容。例如,创建一个包含 id, title, content 字段的 articles 表。

CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    content TEXT
);

基础搜索实现

通过 SQL 的 LIKE 语句实现简单搜索功能。

<?php
$searchTerm = $_GET['search'] ?? '';
$results = [];

if (!empty($searchTerm)) {
    $db = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
    $stmt = $db->prepare("SELECT * FROM articles WHERE title LIKE :term OR content LIKE :term");
    $stmt->execute([':term' => "%$searchTerm%"]);
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
?>

<form method="GET">
    <input type="text" name="search" placeholder="搜索...">
    <button type="submit">搜索</button>
</form>

<?php if (!empty($results)): ?>
    <ul>
        <?php foreach ($results as $result): ?>
            <li>
                <h3><?php echo htmlspecialchars($result['title']); ?></h3>
                <p><?php echo htmlspecialchars($result['content']); ?></p>
            </li>
        <?php endforeach; ?>
    </ul>
<?php endif; ?>

全文索引优化

对于大量数据,使用 MySQL 的全文索引 (FULLTEXT) 提高搜索效率。

ALTER TABLE articles ADD FULLTEXT(title, content);

修改 PHP 代码使用 MATCH AGAINST 语法:

$stmt = $db->prepare("SELECT * FROM articles WHERE MATCH(title, content) AGAINST(:term IN NATURAL LANGUAGE MODE)");
$stmt->execute([':term' => $searchTerm]);

分页处理

添加分页功能避免结果过多。

$page = $_GET['page'] ?? 1;
$limit = 10;
$offset = ($page - 1) * $limit;

$stmt = $db->prepare("SELECT * FROM articles WHERE MATCH(title, content) AGAINST(:term) LIMIT :limit OFFSET :offset");
$stmt->bindParam(':term', $searchTerm);
$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();

安全与性能建议

  • 使用预处理语句防止 SQL 注入
  • 对输出内容使用 htmlspecialchars() 防止 XSS
  • 对于超大规模数据考虑 Elasticsearch 或 Solr
  • 添加搜索关键词高亮功能提升用户体验

php实现搜索实例

标签: 实例php
分享给朋友:

相关文章

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Rat…

php实现表单

php实现表单

PHP 表单基础实现 创建一个简单的 PHP 表单需要 HTML 表单结构和 PHP 处理脚本。以下是一个完整的示例: HTML 表单部分 (form.html) <form actio…

php实现搜索

php实现搜索

PHP实现搜索功能的方法 在PHP中实现搜索功能通常涉及数据库查询和用户输入的匹配。以下是几种常见的实现方式: 使用MySQL LIKE语句 通过简单的LIKE语句实现基础搜索: $searc…

php实现聊天

php实现聊天

实现 PHP 聊天功能的方法 使用 WebSocket 和 PHP 实现实时聊天 WebSocket 是一种全双工通信协议,适合实现实时聊天功能。PHP 可以通过 Ratchet 库实现 WebSo…

php实现分类

php实现分类

PHP实现分类的方法 数据库设计 创建分类表时,通常需要包含id、名称、父级id等字段。父级id用于实现多级分类结构。 CREATE TABLE categories ( id INT AU…

php实现即时通讯

php实现即时通讯

PHP 实现即时通讯的方案 即时通讯(IM)可以通过多种方式实现,PHP 作为服务器端语言,通常需要结合前端技术(如 WebSocket、AJAX)或第三方服务来实现实时通信。以下是几种常见的实现方式…