当前位置:首页 > PHP

php搜索功能的实现

2026-02-27 14:09:31PHP

PHP 搜索功能的实现

基础搜索实现

使用 SQL 的 LIKE 语句实现基础搜索功能,适用于小型网站或简单需求。核心代码示例:

$searchTerm = $_GET['search'];
$query = "SELECT * FROM products WHERE name LIKE '%$searchTerm%'";
$result = mysqli_query($connection, $query);

全文索引搜索

对于更高效的搜索,可在 MySQL 中使用全文索引:

ALTER TABLE products ADD FULLTEXT(name, description);

$query = "SELECT * FROM products 
          WHERE MATCH(name, description) AGAINST('$searchTerm')";

分页处理

实现搜索结果分页功能:

$perPage = 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $perPage;

$query = "SELECT * FROM products 
          WHERE name LIKE '%$searchTerm%' 
          LIMIT $offset, $perPage";

安全防护

防止 SQL 注入攻击:

$searchTerm = mysqli_real_escape_string($connection, $_GET['search']);
// 或使用预处理语句
$stmt = $connection->prepare("SELECT * FROM products WHERE name LIKE ?");
$searchParam = "%$searchTerm%";
$stmt->bind_param("s", $searchParam);
$stmt->execute();

高级搜索功能

实现多条件组合搜索:

$filters = [];
if(!empty($_GET['category'])) {
    $filters[] = "category_id = ".(int)$_GET['category'];
}
if(!empty($_GET['price_min'])) {
    $filters[] = "price >= ".(float)$_GET['price_min'];
}

$where = !empty($filters) ? 'WHERE '.implode(' AND ', $filters) : '';
$query = "SELECT * FROM products $where";

搜索结果高亮

在显示结果时高亮搜索关键词:

function highlight($text, $word) {
    return preg_replace("/($word)/i", '<span class="highlight">$1</span>', $text);
}
echo highlight($row['name'], $searchTerm);

使用搜索引擎扩展

对于大型网站,可集成 Elasticsearch 或 Algolia 等专业搜索服务:

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

搜索建议功能

实现自动完成搜索建议:

$query = "SELECT name FROM products 
          WHERE name LIKE '$searchTerm%' 
          LIMIT 5";
$result = mysqli_query($connection, $query);
$suggestions = [];
while($row = mysqli_fetch_assoc($result)) {
    $suggestions[] = $row['name'];
}
echo json_encode($suggestions);

搜索日志记录

记录用户搜索行为用于分析:

php搜索功能的实现

if(!empty($searchTerm)) {
    $ip = $_SERVER['REMOTE_ADDR'];
    $logQuery = "INSERT INTO search_logs (term, ip, created_at) 
                 VALUES ('$searchTerm', '$ip', NOW())";
    mysqli_query($connection, $logQuery);
}

标签: 搜索功能php
分享给朋友:

相关文章

php实现

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $nam…

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…

php无限分类的实现

php无限分类的实现

PHP无限分类的实现 无限分类是一种常见的树形结构数据组织方式,适用于商品分类、菜单管理、地区选择等场景。以下是几种实现方法: 递归实现法 递归是最直观的实现方式,通过函数自身调用来遍历子分类。数据…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php实现秒杀

php实现秒杀

PHP实现秒杀功能的关键技术 秒杀系统需要解决高并发、数据一致性、系统稳定性等问题。以下是PHP实现秒杀功能的核心技术方案: 数据库优化 使用InnoDB引擎的行级锁和事务特性,确保数据一致性。商品…

排序算法 php实现

排序算法 php实现

以下是用PHP实现的常见排序算法,每种算法均附示例代码和简要说明: 冒泡排序 通过重复比较相邻元素并交换位置实现排序: function bubbleSort($arr) { $n…