Isso deve começar na parte do "contexto" ...
// 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...'
Essa função não leva em conta os casos em que os limites de preenchimento ficariam fora da string de conteúdo, como quando a palavra-chave é encontrada perto do início ou do final do conteúdo. Também não leva em conta várias partidas, etc. Mas esperamos que pelo menos aponte você na direção certa.