Gestion des noms

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 304 fois - Téléchargée 16 fois

Contenu du snippet

Ces deux fonctions gèrent autant que possible l'écriture correcte des noms. Dans un formulaire d'insertion de nom, c'est tellement plus pratique d'écrire tout en minuscules. Ces deux fonctions mettent, autant que possible la majuscule au bon endroit.

Quelques jours plus tard, j'ai réussi à mettre tout en une ligne....

Source / Exemple :


//fonction pour traiter les prénoms avec un - (jean-pierre)
function maj_comp($str)
{	
	//je fais un tableau avec les -
        $tab=explode("-",$str);		
	$i=0;	
	while ($i < count($tab)) 
	{
		//je met une majuscule devant cahque partie du prénom
                $tab[$i] = ucfirst(trim($tab[$i])); 
		$i++;
	}
	return implode('-', $tab);//je remets tout en place
}

//fonction pour gérer les noms à particule (herbert-edouard de la pépinière-gentil)
function maj_comp_nom($str)
{
		//je fais un tableau avec les espaces
                $tab=explode(" ",$str);
	$i=0;	
	while($i < count($tab))
	{
		//exception de la particule, si particule -> en minuscules
                $regex = "/^(de|von|la|du)$/i";
		if(preg_match($regex,$tab[$i])) 
			$tab[$i] = strtolower(trim($tab[$i]));
		else
			//si pas particule, j'utilise la fonction précédente
                        $tab[$i] = maj_comp($tab[$i]);
		$i++;		
	}			
	return implode(' ', $tab);//je remets tout en place	
}

// modifications de quelques jours plus tard

function maj_comp($str)
{	
    $str = preg_replace('/\b(De|La|Von|Du)/ie', 'strtolower("$1")', preg_replace('/\b(\w+)/e', 'ucfirst(strtolower("$1"))', $str));
    return $str;
}

/*Explication
On remplace les exceptions(de|la|von|du) par les exceptions en minuscule dans les mots capitalisés de la chaine $str.

  • /

Conclusion :


Pour les noms un peu spéciaux comme DiBosio, on prévoit un fichier d'update sans aucune fonction de correction.
Des heures j'y ai passé...

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.