par
yule » 03 avr. 2017, 16:03
Bonjour,
J'ai récupéré ce bout de code qui me permet d'afficher une description d'un gros texte par la gauche ou par la droite. Jusqu'ici, tout fonctionne. (enfin presque)
Je n'arrive pas à incorporer une colloration des mots clefs ($keywordsy), soit une mise en gras dès que le mots clefs est trouvé dans la description
Disons que si la recherche est "pomm" qu'il me mette en gras pour une telle description : "une
pomme poser sur le
pommeau de ma boite de vitesse etc..."
Après, la coupure de la description (à 320 caractères) ne se fait pas sur le premier espace trouvé à ~320 caractère mais directement au 320ème caractère, donc un mot est régulièrement coupé avant les .. pourtant il devrait non ?
<?php
$nul = strlen($description);
// <!-- solution de secours si description vide -->
if ($nul <=50)
{
$pos = stripos($texte, $keywordsy); // insensible à la casse, sinon strpos
if ($pos === false)
{
$decription = "$description";
}
else
{
$description = "$texte";
}
$texte = str_replace(array("\r\n", "\n", "\n\r"), ' ', $texte);
$y = stripos($texte, $keywordsy);
if ($y <= 320)
{
$r = substr($texte, 0, $y);
}
else
{
// <!-- Par la gauche -->
$lim = -320;
while (substr($texte, $y + $lim--, 1) !== ' ') // coupure sur le premier espace trouvé
{
continue;
}
$r = substr($texte, $y + $lim + 2, abs($lim) - 2);
}
$start = $y + strlen($keywordsy);
if (($start + 320) >= strlen($texte))
{
$r .= substr($texte, $y);
}
else
{
// <!-- Par la droite -->
$lim = 320;
while (substr($texte, $start + $lim++, 1) !== ' ')
{
continue;
}
$r .= substr($texte, $y, --$lim + strlen($keywordsy));
}
$description ="$r";
$description ="$description ..";
}
?>
Merci pour votre aide
Yule
Bonjour,
J'ai récupéré ce bout de code qui me permet d'afficher une description d'un gros texte par la gauche ou par la droite. Jusqu'ici, tout fonctionne. (enfin presque)
Je n'arrive pas à incorporer une colloration des mots clefs ($keywordsy), soit une mise en gras dès que le mots clefs est trouvé dans la description
Disons que si la recherche est "pomm" qu'il me mette en gras pour une telle description : "une [b]pomm[/b]e poser sur le [b]pomm[/b]eau de ma boite de vitesse etc..."
Après, la coupure de la description (à 320 caractères) ne se fait pas sur le premier espace trouvé à ~320 caractère mais directement au 320ème caractère, donc un mot est régulièrement coupé avant les .. pourtant il devrait non ?
[PHP]<?php
$nul = strlen($description);
// <!-- solution de secours si description vide -->
if ($nul <=50)
{
$pos = stripos($texte, $keywordsy); // insensible à la casse, sinon strpos
if ($pos === false)
{
$decription = "$description";
}
else
{
$description = "$texte";
}
$texte = str_replace(array("\r\n", "\n", "\n\r"), ' ', $texte);
$y = stripos($texte, $keywordsy);
if ($y <= 320)
{
$r = substr($texte, 0, $y);
}
else
{
// <!-- Par la gauche -->
$lim = -320;
while (substr($texte, $y + $lim--, 1) !== ' ') // coupure sur le premier espace trouvé
{
continue;
}
$r = substr($texte, $y + $lim + 2, abs($lim) - 2);
}
$start = $y + strlen($keywordsy);
if (($start + 320) >= strlen($texte))
{
$r .= substr($texte, $y);
}
else
{
// <!-- Par la droite -->
$lim = 320;
while (substr($texte, $start + $lim++, 1) !== ' ')
{
continue;
}
$r .= substr($texte, $y, --$lim + strlen($keywordsy));
}
$description ="$r";
$description ="$description ..";
}
?>[/PHP]
Merci pour votre aide
Yule