[PHP] Faisable ?

Faisable ? [PHP] - PHP - Programmation

Marsh Posté le 24-07-2002 à 19:52:59    

Je cherche à améliorer un script de moteur de recherche...  
J'ai un fichier .txt qui contient la description de ma page indexée, je met le contenu de ce fichier dans une variable, et je voudrais ensuite que mon script me renvoie une variable avec seulement les 30 caractères qui sont autours des mots clé que je cherche et j'ajoute des pts de suspensions entre...
Par exemple:  

Code :
  1. $description = "Blablablablablablabl mot-clé blablablablablbal mot-clé blablablabalablablablabalbalblablablabla";
  2. et ensuite j'obtiens ça :
  3. $var = "...blablabl mot-clé blablbla... blablabla mot-clé blablablabla...";


 
Bien sur le nombre de caractère avant et après est à revoir...
Comment je peux faire? :??:


Message édité par Toto21 le 24-07-2002 à 19:53:20
Reply

Marsh Posté le 24-07-2002 à 19:52:59   

Reply

Marsh Posté le 24-07-2002 à 21:59:30    

Bon... j'ai essayé:

Code :
  1. global $chaine_finale;
  2. $chaine = "Blablablablablablabl Test blablablablablbal test blablablabalablablablabalbalblablablabla test ";
  3. $mot = "test";
  4. $lg = strlen($mot);
  5. $nb = substr_count($chaine,$mot);
  6. $s = 10;
  7. $l = 30;
  8. for($i=0;$i<$nb;$i++)
  9. {
  10. $idx = strpos($chaine,$mot);
  11. $chaine_finale .= "...".substr($chaine,$idx-$s,$l)."...";
  12. $chaine = substr($chaine, $idx+$lg);
  13. }
  14. echo $chaine_finale;


Et j'ai encore deux problèmes... C'est sensible à la casse, ce que je ne souhaite pas... et lorsque deux mots se suivent à moins de 30 caractères, ça foire un peu...
Comment est-ce que je peux régler ces deux problèmes?
Merci à tous!
 :hello:


Message édité par Toto21 le 25-07-2002 à 00:18:43
Reply

Marsh Posté le 25-07-2002 à 00:22:17    

:??:

Reply

Marsh Posté le 25-07-2002 à 09:46:37    

:cry:

Reply

Marsh Posté le 25-07-2002 à 13:52:26    

:hello:

Reply

Marsh Posté le 25-07-2002 à 15:53:45    

oui c'est faisable

Reply

Marsh Posté le 25-07-2002 à 16:32:30    

merci!!!!!
é pourriez pas m'aider un ch'ti coup!!  :hap:
Ou au moins... comment est-ce que je peux faire pour compter le nombre d'occurence en ignorant la casse?


Message édité par Toto21 le 25-07-2002 à 16:35:26
Reply

Marsh Posté le 25-07-2002 à 19:30:12    

Une bonne expression régulière Perl devrait faire l'affaire ;)
 

$LONGUEUR = 30;
$chaine = "Blablablablablablabl Test blablablablablbal test blablablabalablablablabalbalblablablabla test ";
$cle = "test";
$occurrences = array();
 
preg_match_all("/.{0,$LONGUEUR}$cle.{0,$LONGUEUR}/i", $chaine, $occurrences);
 
foreach ($occurrences[0] as $valeur) {
  echo "$valeur... ";
}


 
À adapter bien sûr, surtout en ce qui concerne l'affichage du résultat final.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed