Petit moteur de recherche par mot(s) clé(s)

Description

Voici un petit code source sympa.

Il vérifie l'existence de mot(s) clé(s) que vous aurez saisi dans une chaîne de caractères et retourne la même chaîne de caractère avec les mot(s) clé(s) mis en valeur (ils seront soulignés et en italique).

NB : Dans mon exemple les mots clés doivent être séparés par des virgules.

Je vous mets à disposition le fichier Zip !

Source / Exemple :


<cfparam name="form.critere" default="va, Ceci, est">
<cfparam name="form.chaine" default="Ceci est la chaîne de caractères qui va servir de test">

<cfset ListeCritere = "#form.critere#">
<cfset chaine = "#form.chaine#">
<cfset newchaine = chaine>

<cfloop index="indice" list="#ListeCritere#" delimiters=",">	
     <cfset critere = "#indice#">
     <cfset newpos = 1>
	
     <cfif Len(newchaine) is not 0>
	<cfset  chaine = newchaine>	
     </cfif>
	
     <cfset PosCritere = FindNoCase(#critere#, #chaine#,#newpos#)>
	
     <cfif PosCritere GT 0>
	<cfset newchaine =''>	
     </cfif>

     <cfloop CONDITION = "(#PosCritere# GT 0)">
          <cfset newchaine = newchaine & #Mid(chaine,newpos,PosCritere-newpos)# 
               & "<i><u>" & #Mid(chaine,PosCritere,len(critere))# & "</u></i>">
          <cfset newpos = Poscritere + len(critere)>
	
          <cfif PosCritere GT 0>
	<cfset AntPosCritere = PosCritere>
           </cfif>
		
           <cfset PosCritere = FindNoCase(#critere#, #chaine#,PosCritere+1)>

           <cfif PosCritere IS 0>
	<cfif PosCritere LT len(critere)>
	     <cfset newchaine = newchaine & #Mid(chaine,AntPosCritere + len(critere),len
                            (chaine))#>
	</cfif>			
            </cfif>
     </cfloop>
</cfloop>
<br><br>
La chaine retournée est : <cfoutput>#newchaine#</cfoutput>

Conclusion :


Bon si vous avez des soucis avec le code, tenez moi au courant.

Par contre si vous avez des suggestions ou corrections à apporter à mon code, n'hesitez pas, je suis à votre écoute...

Bon courage

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.