Това трябва да ви помогне да започнете с частта "контекст"...
// return the part of the content where the keyword was matched
function get_surrounding_text($keyword, $content, $padding)
{
$position = strpos($content, $keyword);
// starting at (where keyword was found - padding), retrieve
// (padding + keyword length + padding) characters from the content
$snippet = substr($content, $position - $padding, (strlen($keyword) + $padding * 2));
return '...' . $snippet . '...';
}
$content = 'this is a really long string of characters with a magic word buried somewhere in it';
$keyword = 'magic';
echo get_surrounding_text($keyword, $content, 15); // echoes '... string with a magic word in it...'
Тази функция не отчита случаите, при които границите на допълването излизат извън низа за съдържание, например когато ключовата дума е намерена близо до началото или края на съдържанието. Освен това не отчита множество съвпадения и т.н. Но се надяваме, че поне трябва да ви насочи в правилната посока.