【发布时间】:2014-11-21 11:22:18
【问题描述】:
A 有这样的事情。它工作正常,但我已经尝试了 2 个小时来削减搜索结果 - $word 之前的 100 str 和之后的 100。 我怎样才能做到这一点?
$word = $_POST["search"];
$sql_events = mysql_query("SELECT * FROM events WHERE event_title LIKE '%" . $word . "%' OR event_desc LIKE '%" . $word ."%'");
function highlightWords($content, $word){
if(is_array($search)){
foreach ( $search as $word ){
$content = str_ireplace($word1, '<span>'.$word1.'</span>', $content);
}
} else {
$content = str_ireplace($word, '<span>'.$word.'</span>', $content);
}
return $content;
}
while($row = mysql_fetch_array($sql_events)){
$content = $row["event_desc"];
$result = highlightWords($content, $word);
echo '<li>
<H3><a href="">'.$row['event_title'].'</a></H3>
<div class="text">'.$result .'...</div>
</li>';
}
【问题讨论】:
-
你到底想要什么?我不明白你的问题...
-
我猜 OP 想要剪切结果,所以只有
$word之前和之后的 100 个字符会显示给用户(而不是整个文档)。你试过什么?你能展示你最有希望的尝试吗? -
我想这是他们想要剪掉的字符串 -
$content = $row["event_desc"];。我说的对吗? -
$content = $row["event_desc"]- 是的。但是在搜索词周围剪掉它。我试过这个:preg_replace("/^.*?(.{0,100})\b($word)\b(.{0,100}).*?$/i", '\1<span class="highlight_word">\2</span>\3', $text);
标签: php string substring substr