当前位置:首页 > 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实现搜索实例

<?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) 提高搜索效率。

php实现搜索实例

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实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必要…

php实现统计

php实现统计

PHP 实现统计功能 在 PHP 中实现统计功能通常涉及数据的收集、处理和展示。以下是一些常见的统计实现方法: 数据库数据统计 通过 SQL 查询可以直接从数据库中获取统计结果: $conn =…

php 实现mvc

php 实现mvc

PHP 实现 MVC 架构的方法 MVC(Model-View-Controller)是一种常见的软件设计模式,用于分离业务逻辑、用户界面和用户输入。以下是 PHP 实现 MVC 架构的关键步骤:…

php 无限分类的实现

php 无限分类的实现

无限分类的实现方法 无限分类通常用于构建树形结构数据,如商品分类、多级菜单等。以下是几种常见的实现方式: 邻接列表模型(Adjacency List) 邻接列表是最简单的实现方式,通过在每个节点中存…

php实现https

php实现https

PHP 实现 HTTPS 请求 在 PHP 中实现 HTTPS 请求,可以通过多种方式完成,包括使用内置函数、cURL 扩展或第三方库。以下是几种常见的方法: 使用 file_get_content…