显示搜索到的单词的文本摘录,它无法正常工作

时间:2014-08-26 00:18:13

标签: php mysql search

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

但是我遇到了一个问题,我不知道如何解决它。

问题是:我在数据库中有一个单词“宪法”,例如,如果我搜索“Const”,我得到我的结果和我的文字“宪法”,但如果我搜索“缺点”我得到我的结果但问题是我没有“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>';

1 个答案:

答案 0 :(得分:1)

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

请尝试使用stripos。您的查询已经不区分大小写,因为您正在使用LIKE。

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