これで、「コンテキスト」の部分から始めることができます...
// 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...'
この関数は、キーワードがコンテンツの最初または最後の近くにある場合など、パディング境界がコンテンツ文字列の外側にある場合を考慮していません。また、複数の一致などは考慮されていません。ただし、少なくとも正しい方向を示している必要があります。