php - 显示搜索词的文本摘录无法正常工作

标签 php mysql search

我正在做一个搜索系统,在这个系统中,我显示了搜索结果,还有一些以搜索词开头的文本。

但我有一个问题,我不知道如何解决它。

问题是:我在数据库中有一个词“Constitution”,例如,如果我搜索“Const”,我会得到我的结果和我的文本“Constitution”,但是如果我搜索“cons”,我得到我的结果,但问题是我没有带“Const ....”的文本

你有办法解决这个问题吗?

我的问题代码:

$search = $url[1];
$read = $pdo->prepare("SELECT * FROM pages WHERE title LIKE ? OR content LIKE ? LIMIT ?,?"); 
$read->bindValue(1, "%$search%", PDO::PARAM_STR);
$read->bindValue(2, "%$search%", PDO::PARAM_STR);
$read->bindParam(3, $begin,PDO::PARAM_INT);
$read->bindParam(4, $max,PDO::PARAM_INT);
$read->execute();
$searchPos = stripos($result['content'],$search);
$searchLen = strlen($search);
$result_text = '"'.substr($result['content'], $searchPos, $searchLen + 35).'..."';
echo '<p>'.strip_tags($result_text).'</p>';

最佳答案

您可能遇到了区分大小写的问题。

尝试使用 stripos反而。您的查询已经不区分大小写,因为您使用的是 LIKE。

$searchPos = strpos($result['content'],$search);

关于php - 显示搜索词的文本摘录无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25496188/

相关文章:

php - 按自定义顺序订购多个字段,最后为空字段

php - 检查数组中的字符串的一部分

sql - 如何在 SQL 中实现 bool 标记搜索?

php - 我应该如何为子站点创建数据库?

capistrano - 运行 Opcache 时部署新的 PHP 代码

来自数据库和查询的 PHP

MySQL排序添加渐进id

php - 对分块数组进行排序并理解它

php - Ajax -> PHP -> MySQL 后 HTML 特殊字符编码不起作用

html - 离线网页搜索