Vous n'êtes pas identifié(e).
Re,
j'avance mais c'est de plus en plus misérable, j'aimerais selon une position précise, afficher le terme recherché avec 170 caractères qui précède ce mot et les 170 caractères qui suivent ce mot
Ce qui fonctionne et qui à l'air optimum...
$keyword = "le+[color=#ff482b]domaine[/color]+de+sa+vigne";
//+ --- je récupère le premier mot avec 4 caractères minimum
$words = array_filter(explode('+', $keyword), function($p) { return strlen($p) > 4; });
$word = reset($words);
echo "$word<br><br>"; // $word est le premier mot de plus de 4 lettres => domaine
//Je cherche la position de ce mot de 4 caractères minimum
$pos = stripos($texte, $word); // insensible à la casse, sinon strpos
if ($pos === false) {
echo "Le terme '$word' ne se trouve pas dans la chaîne texte";
} else {
echo "Le terme '$word' a été trouvée dans la chaîne texte<br><br>";
echo " Le terme '$word' débute à la position $pos <br><br>"; // position 220
}
// domaine
// Le terme 'domaine' a été trouvée dans la chaîne texte
// Le terme 'domaine' débute à la position 220
Maintenant avec ce qui précède, je dois afficher les 170 caractères précédant ce $word "domaine" et les 170 suivants pour y afficher avec une découpe sur des mots entiers
Le résultat espéré => gmail drive plus » historique web | paramètres | connexion × surfez encore plus vite installer google chrome suisse recherche avancée outils linguistiques le domaine google.ch est disponible en : deutsch english italiano rumantsch solutions publicitaires solutions.
IMPORTANT: il faudrait également prendre en compte que s'il n'y pas de 170 caractères avant ou 170 après $word et sa position ($pos), qu'il prennent en plus du $word "domaine" les 240 caractères le précédant ou les 240 caractères suivant
J'arrive qu'à ça (pathétique..:oops:)
echo"$result <br><br>";
//domaine google.ch est disponible en : deutsch english italiano rumantsch solutions publicitaires solutions
// Afficher 170 caractères avant $word
$decompte = strlen($word); //7
$v=$length-$décompte; // 170-7 = 163
$x2=$pos-$v; //220-163-1 = 58 (nouvelle position..)
$start = $x2; // 58
$result2 = substr ($texte, $start, $length);
echo"$result2 <br><br>";
// ités gmail drive plus » historique web | paramètres | connexion × surfez encore plus vite installer google chrome suisse recherche avancée outils linguistiques le
echo"$result2$result <br><br>";
//ités gmail drive plus » historique web | paramètres | connexion × surfez encore plus vite installer google chrome suisse recherche avancée outils linguistiques le domaine google.ch est disponible en : deutsch english italiano rumantsch solutions publicitaires solutions
=> ités gmail drive plus » historique web | paramètres | connexion × surfez encore plus vite installer google chrome suisse recherche avancée outils linguistiques le domaine google.ch est disponible en : deutsch english italiano rumantsch solutions publicitaires solutions
Ça ne coupe pas proprement, ça ne prend pas en compte s'il y a assez de caractères avant et après $word et c'est surtout, pas du tout optimum arghhhhhh
J'essaye mais ça va pas....
A+
Yule
Hors ligne
Bonjour,
pourquoi faire compliqué, quand on peut faire très simple?
Bon week-end
Dernière modification par Jc (30-08-2014 12:37:14)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Extra merci bien !!!
JE vais regarder tout ça et le mettre en pratique
Excellent week-end également
Yule
Hors ligne