我正在做一个搜索系统,在这个系统中,我显示了搜索结果,还有一些以搜索词开头的文本。
但我有一个问题,我不知道如何解决它。
问题是:我在数据库中有一个词“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/