1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <?php
$keywordsy ="la mort en directe fascine les gens à":
function get_snippet($keywordsy, $texte) {
$snippet='';
$span = 70;
$strlen_max = 400;
$keywordsy = trim(preg_replace("#( [[:alnum:]]{1,2} )#Ui", " ", " ".$keywordsy." ")); // ajout d'un espace avant et
// supprimer ceux à deux
$keywordsy = str_replace(' un ',' ',$keywordsy);
$keywordsy = str_replace(' une ',' ',$keywordsy);
$keywordsy = str_replace(' dans ',' ',$keywordsy);
$keywordsy = str_replace(' le ',' ',$keywordsy);
$keywordsy = str_replace(' de ',' ',$keywordsy);
$keywordsy = str_replace(' des ',' ',$keywordsy);
$keywordsy = str_replace(' les ',' ',$keywordsy);
$keywordsy = str_replace(' ses ',' ',$keywordsy);
$keywordsy = str_replace(' se ',' ',$keywordsy);
// etc........
$keywordsy = trim($keywordsy);
$words = join('|', explode(' ', preg_quote($keywordsy)));
preg_match_all("#(\W.{0,$span}\W)($words)(\W.{0,$span}\W)#iu", " $texte ", $matches);
foreach($matches[0] as $match) {
if (!$match = trim($match)) continue;
if (isset($snippet)) $snippet .= "$match..."; else $snippet = "...$match...";
if (strlen($snippet.htmlspecialchars($match[0], 'UTF-8')."... ") > $strlen_max) break;
}
$snippet = preg_replace("#($words)#iu", '<b>$1</b>', $snippet);
return $snippet;
}
?> |
Partager