当前位置:首页 > PHP

php 实现搜索

2026-02-14 21:58:37PHP

PHP 实现搜索功能

在 PHP 中实现搜索功能通常涉及数据库查询和用户输入的匹配。以下是几种常见的实现方式:

数据库全文搜索

$searchTerm = $_GET['search'] ?? '';
$query = "SELECT * FROM articles WHERE MATCH(title, content) AGAINST(:search IN NATURAL LANGUAGE MODE)";
$stmt = $pdo->prepare($query);
$stmt->execute([':search' => $searchTerm]);
$results = $stmt->fetchAll();

LIKE 模糊搜索

$searchTerm = '%' . $_GET['search'] . '%';
$query = "SELECT * FROM products WHERE name LIKE :search OR description LIKE :search";
$stmt = $pdo->prepare($query);
$stmt->execute([':search' => $searchTerm]);

使用 Elasticsearch

对于大型项目,可以集成 Elasticsearch:

$client = Elasticsearch\ClientBuilder::create()->build();
$params = [
    'index' => 'products',
    'body' => [
        'query' => [
            'match' => [
                'name' => $_GET['search']
            ]
        ]
    ]
];
$response = $client->search($params);

AJAX 实时搜索

前端配合 AJAX 实现实时搜索:

// JavaScript 部分
document.getElementById('search').addEventListener('keyup', function() {
    fetch('search.php?q=' + this.value)
        .then(response => response.json())
        .then(data => updateResults(data));
});
// search.php
header('Content-Type: application/json');
echo json_encode($searchResults);

安全注意事项

// 始终对用户输入进行清理
$searchTerm = filter_var($_GET['search'], FILTER_SANITIZE_STRING);
// 使用预处理语句防止 SQL 注入
$stmt = $pdo->prepare("...");

高级搜索功能

实现多条件搜索:

php 实现搜索

$filters = [];
if (!empty($_GET['category'])) {
    $filters[] = "category_id = " . (int)$_GET['category'];
}
if (!empty($_GET['price_min'])) {
    $filters[] = "price >= " . (float)$_GET['price_min'];
}
$where = $filters ? 'WHERE ' . implode(' AND ', $filters) : '';
$query = "SELECT * FROM products $where";

搜索结果分页

$page = max(1, (int)$_GET['page'] ?? 1);
$perPage = 10;
$offset = ($page - 1) * $perPage;
$query = "SELECT * FROM products WHERE ... LIMIT $offset, $perPage";

标签: php
分享给朋友:

相关文章

php实现图片上传

php实现图片上传

实现图片上传的基本步骤 创建HTML表单用于文件上传,表单需设置enctype="multipart/form-data"属性,确保文件数据正确传输。 <form action="upload…

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…

php实现上传图片

php实现上传图片

上传图片的基本流程 PHP 实现图片上传功能需要处理文件接收、验证、保存等步骤。以下是具体实现方法。 创建 HTML 表单 在 HTML 中创建一个表单,设置 enctype="multipart/…

php实现推送消息推送消息

php实现推送消息推送消息

PHP 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebSo…

php实现伪静态

php实现伪静态

PHP 实现伪静态的方法 伪静态(URL Rewrite)是一种将动态URL转换为看似静态URL的技术,提升SEO友好性和用户体验。以下是几种常见的实现方式: 使用 Apache 的 mod_rew…

php变量的实现

php变量的实现

PHP变量的实现机制 PHP变量的实现基于Zend引擎的底层数据结构。核心结构体zval用于存储变量类型和值,其设计允许动态类型转换和高效内存管理。 zval结构体 PHP变量通过zval结构体实现…