[RESOLU] afficher un extrait d'une chaine , x mots avant et après le mot spécifié

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] afficher un extrait d'une chaine , x mots avant et après le mot spécifié

Re: afficher un extrait d'une chaine , x mots avant et après le mot spécifié

par LittleFairy2 » 14 mars 2017, 20:30

Hello !
j'ai trouvé la solution, je la met pour qui serait intéressé :

Code : Tout sélectionner

require_once('Connections/client.php'); $resultat1=$client->query("SELECT SUBSTR(nom_champ, INSTR(nom_champ, 'occurrence' ) -20, CHAR_LENGTH( 'occurrence' ) +30 ) AS resultat FROM table WHERE nom_champ LIKE '%occurrence%'"); // $news=$resultat1->fetch_assoc(); while($news=$resultat1->fetch_assoc()) { $tab = explode(" ", $news['resultat']); //on decoupe le résultat et le stock dans un tableau $tab = array_splice($tab, 1); //on enlève le premier mot $tab = array_splice($tab, 0,sizeof($tab)-1); //on enléve le dernier mot echo "...".implode(" ", $tab)."..."; //on retranscrit le tableau dans une chaine }
Bonne soirée !!

afficher un extrait d'une chaine , x mots avant et après le mot spécifié

par LittleFairy2 » 14 mars 2017, 19:29

Bonjour à tous,

Je développe un petit moteur de recherche pour mon site, et j'ai un souci pour afficher les résultats :
pour ne pas mettre l'intégralité du texte dans lequel l'expression a été trouvée, je souhaiterai afficher l'expression recherchée en gras et quelques mots avant et après, mais pas tout le texte.
exemple :
texte original : "j'aime le php mais j'en fais des cauchemars quand ça ne marche pas"
si je recherche le mot "cauchemars", je souhaiterai obtenir :
"... fais des cauchemars quand..."

j'ai trouvé cette fonction :

Code : Tout sélectionner

function substr_words($textecourt, $count = 4) { $words = explode(' ', $textecourt, ($count + 1)); if ( count($words) > $count ) { array_pop($words); return implode(' ', $words).'...'; } }
mais elle fonctionne à partir du début de la phrase...
pourriez-vous m'aider ?

je vous remercie beaucoup !!!