Rechercher sans s'occuper des accents

Description

Cette fonction vous permet de rechercher dans une chaine de caractere un mot comme dédé ou dede ou déde sens prendre en compte les accens et la case et metre devant et derriere le mot se que vous voulez (pour metre en gras par exemple: str_implante(la chaine,le mot,<b>,</b>))

ex:je cherche dede dans une chaine de caractères "Salut Dédé. Comment vas tu Dédé" la fonction vous renvera "Salut <b>Dédé</b>. Comment vas tu <b>Dédé</b>" si la fonction et configurée de manière a metre <b> au debut et </b> à la fin.

Je n'est maleureusement pas commenter la fonction car je n'es pas le temp pour le moment dsl

Attention: il y a une autre fonction qui doit rester pour que cette fonction marche c'est la fonction removeaccents qui permet d'enlever les accens.

Source / Exemple :


//fonction pour enlever les accens
function removeaccents($text)
	{  
    return strtr($text,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
   	}
//Je crée une fonction qui met $impstart au debut de $cherche et $impend a la fin dans la chène $string meme si il y en n'as plusieur
function str_implante($string,$cherche,$impstart,$impend)
{
	$cherche_txt_filtre=removeaccents(strtolower($cherche));
	$string_txt_filtre=removeaccents(strtolower($string));
	$impstart_long=strlen($impstart);
	$impend_long=strlen($impend);
	$cherche_long=strlen($cherche_txt_filtre);
	if(ereg("$cherche_txt_filtre","$string_txt_filtre"))
		{
		while($endwhile!=1)
			{
			$debut_mot=strpos($string_txt_filtre,$cherche_txt_filtre);
			$fin_mot=$cherche_long;
			$string_suite=substr("$string",$debut_mot);
			$string_fin=$cherche_long+$debut_mot;
			$string_fin_txt=substr("$string",$string_fin);
			$string_filtre_fin_txt=substr("$string_txt_filtre",$string_fin);
			//remplace les caractères trouver par une forme spécial (gras)
			$text_trouver_debut = substr_replace("$string","$impstart",$debut_mot);
			$text_trouver_fin = substr_replace("$string_suite","$impend",$fin_mot);
			$array_txt=array($txt,$text_trouver_debut,$text_trouver_fin);
			$txt=implode("",$array_txt);
			$string=$string_fin_txt;
			$string_txt_filtre=$string_filtre_fin_txt;
			if(!ereg("$cherche_txt_filtre","$string_txt_filtre"))
				{
				$endwhile=1;
				}
			}
			$array_txt2=array($txt,$string_fin_txt);
			$txt=implode("",$array_txt2);
			return $txt;
		}
}

Conclusion :


Elle est très utile pour les recherches surtout quand vous demander à mysql de faire une recherche avec "table LIKE '%dédé%'". mysql vous ressortira tous les enregistrements qui contienne dede ou dédé ;-).

A+

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.