Article publié le mercredi 07 mars 2007 par pchlj.
Cet article est classé dans les catégories « Accessibilité, Ergonomie, Internet et Intranet, Outils, PHP »
Tout les mots de la langue françaises ne prennent pas un S au pluriel ;)
Bonjour tout le monde,
Je vais une fois de plus vous proposer une petite fonction que nous avons mis au point avec mon associé il y a déjà quelques mois et qui facilite un peu la vie pour une quesiton toute simple : comment mettre un mot au pluriel ???
# Rajoute un s ou n'importe quelle terminaison plurielle à une chaine...
# $nb est la variable de test pour un pluriel
# $mot est le mot à mettre au pluriel
function pluriel($nb,$mot)
{
if(substr($mot,-3)=="ail")
{
$plur=array(bail, corail, soupirail, travail, vantail, vitrail);
if(in_array($mot,$plur))
{
$res=substr_replace($mot,"aux",-3);
}
else
{
$res=$mot."s";
}
}
elseif(substr($mot,-2)=="al")
{
$plur=array(bal, cal, carnaval, cérémonial, chacal, festival, récital, régal);
if(in_array($mot,$plur))
{
$res=$mot."s";
}
else
{
$res=substr_replace($mot,"aux",-2);
}
}
elseif(substr($mot,-2)=="ou")
{
$plur=array(bijou, caillou, chou, genou, hibou, joujou, pou);
if(in_array($mot,$plur))
{
$res=$mot."x";
}
else
{
$res=$mot."s";
}
}
elseif(in_array($mot,array(km,mn,a,ha)))
{
$res=$mot;
}
else
{
$term="s";
$res=$mot.$term;
}
($nb > 1) ? print $res : print $mot;
}
En clair rien de bien compliqué mais nous avons mis les principales règles de pluriel de la langue française...
L'intérêt ?? tout simple !!
prenons une exmple de jeu en ligne avec des objets à conserver dans une grotte ou autre.
Nous aurions des gourdes et des cailloux !
Seulement voilà il faut pour être propre sur un site web écrire le français correctement !
le but afficher :
vous avez 0 caillou et 0 gourde dans votre grotte
ou encore
vous avez 3 cailloux et 0 gourde dans votre grotte
ou encore
vous avez 3 cailloux et 3 gourdes dans votre grotte
imaginons un code ou $nbc et $nbg sont le nombre de caillou et de gourde
cela donnerais ceci
print "Vous avez ".$nbc;
($nbc > 1) ? print "cailloux" : print "caillou";
print " et ".$nbg;
($nbg > 1) ? print "gourdes" : print "gourde";
print " dans votre grotte";
Nous admettrons tous que ce n'est pas très lisible pas très pratique, fastidieux à chaque rajout...
La solution avec la fonction pluriel
print "Vous avez ".$nbc." ".pluriel($nbc,"caillou")." et ".$nbg." ".pluriel($nbg,"gourde")." dans votre grotte";
Voilà plus facile, plus rapide...
Bon il manque encore quelques règles pour pique-nique et autres mots composés masi c'est une fonction personnelle il est donc aisé de la modifier, de la compléter ou de s'en inspirer..
@++
Sources de l'information : SARL 3Net
Plus d'informations :
Commenter cette publication
-
Commentaire publié le jeudi 15 mars 2007 à 18 h 51 par FabHacker
-
Très bon article dans la série des "Pourquoi faire simple quand on peut faire compliqué ?".
Voila une fonction que j'avais élaboré:
function pluriel($nombre, $pluriel = 's', $singulier = '') {
if($nombre > 1) return $pluriel;
else return $singulier;
}
Pas besoin de spécifier les mots...
Par défaut la fonction ajoute un -s à la fin du mot.
Si nous sommes dans un cas particulier (comme "journal" par exemple), on spécifie le pluriel, et si besoin est, le singulier.
$nbg = 5;
$nbj = 6;
$texte = '<b>' . $nbg . '</b> grotte' . pluriel($nbg) . '<br />';
$texte .= 'Vous avez acheté <b>' . $nbj . '</b> journ' . pluriel('aux','al') . '<br />';
$texte .= 'Ou alors <b>' . $nbj . '</b> ' . pluriel('journaux','journal') . '<br />';
print($texte);
-
Commentaire publié le vendredi 16 mars 2007 à 10 h 48 par pchlj
-
salut Fab interressant mais cela demande de connaître ses règles de pluriel et donc d'avoir été un minimum bon à l'école ;)
certes tu simplifie, et je dis oui on l'avais fait aussi.. mais marre de voir un s à Km quand il y a plus de 2 Km (et oui pas de s)
donc LA fonction ne t'oblige pas à connaitre les règles ;) suffisamment compliquées s'il en est :)
après comme toujors en programmation cahcun vois midi à sa porte :) iil nous reste le choix :) grace à mon article tu as fait connaitre ta fonction... maintenant ceux qui voudront gérer correctement leur pluriels et la langue française auront le choix :)
(phil programmeur php depuis 13 ans ;) et pour autant pas parfait lol )
-
Commentaire publié le lundi 16 avril 2007 à 08 h 52 par jarodender
-
(phil programmeur php depuis 13 ans ;) et pour autant pas parfait lol )
C'est pas la peine de préciser 13 ans, puisque PHP n'est utilisé que depuis 1998, donc au mieux 9 ans !
http://fr.wikipedia.org/wiki/PHP_hypertext_preprocessor
S'il s'agit de l'âge où tu as commencé, alors ta phrase est trompeuse, et prouve juste qu'un programmeur a 13 ans n'a pas les connaissances poussées pour faire de la programmation objet de manière mature, d'ailleurs les codes données ci-dessus ne sont toujours pas objets.
-
Commentaire publié le lundi 16 avril 2007 à 14 h 20 par pchlj
-
ah les wiki et leur lot de conneries :)
bon alors internet est répendu en france depuis 1995 !! et la première version de php venant de perl date de ces eaux là je t'accorde 1996 mais je crois que c'est plutot 1994.
A cette époque l'objet n'existait pas dans le php...
la phrase n'est là qu'en clin d'oeil au message du dessus (Programmeur PHP depuis presque 4 ans de fabhacker ;))
un peu d'humour :)
bon pour ton info l'objet n'est pas la référence absolue et n'est pas toujours utile !
j'ai commencé avec le basic en 1987 (j'avais 9ans) et j'ai évolué au fur et à mesure :) j'ai 38 ans maintenant , et travaille avec du PERL de l'asp du c du delphi, du java, du javascript de l'action script du php
Cette fonction ici présentée existe depuis 4 ans dans l'état et nous fournis tout ce dont nous avons besoin....
pour paraphraser fabhacker "Pourquoi faire simple quand on peut faire compliqué ?".
mais surtout pourquoi réinventer la roue ???
ce code fonctionne depuis longemps, on peut toujours le refaire...
Des forums existent depuis des années et c'est pourtant toujours un TP pour les bts
Nous avons donc le choix dans plus de 100 modèles de forums qui font pourtant tous la meme chose...
Si tu as envi de recréer cette fonction en objet pourquoi pas :)
Les fonctions du php se sont enrichies grace aux idées de la communauté qui créait des petites fonctions de ce genre et qui ont été intégrées en natif...
Bref...
les querelles de langages sont inutiles et ne font pas avancer :)
J'ai passé 20 minutes de conversations stériles avec le prof de stage de notre dernière stagiaire, qui ne comprenait pas pourquoi on utilisait encore le PHP ou l'asp alors que JAVA est 10000 fois mieux... perso je vois pas en quoi c'est 10000 fois mieux !!
donc voilà... tu ne jure que par l'objet apparemment et tant mieux pour toi c'est en effet ce qui se fait de mieux... mais pas toujours ;) et rien n'oblige à n'utiliser que de l'objet :)
-
Commentaire publié le lundi 14 mai 2007 à 00 h 58 par scientifix94
-
Faudrait qu'All HTML utilise ca! Quand il n'y a pas d'inscrits on voit quand même: dont 0 inscrits aujourd'hui;)
-
Commentaire publié le mercredi 16 mai 2007 à 10 h 04 par vikingforce
-
>>j'ai commencé avec le basic en 1987 (j'avais 9ans) et j'ai évolué au fur et à mesure :) j'ai 38 ans maintenant
On vois que tu es meilleur en Français qu'en math :-)
-
Commentaire publié le mercredi 16 mai 2007 à 10 h 39 par pchlj
-
lol VF ;)
en effet en 87 j'avais 8 ans :) mais ça dépend à quel moment de l'année on se place hein ;) :p
-
Commentaire publié le dimanche 20 mai 2007 à 12 h 41 par hzj74
-
Bonjour,
La discussion est chaude !
J'aime bien la petite fonction. Je la trouve simple, ingénieuse et pratique. En plus, il est facile de la faire évoluer.
Merci à pchlj d'avoir partagé ce travail.
A+
Hzj74
-
Commentaire publié le vendredi 14 décembre 2007 à 15 h 51 par pchlj
-
oh là là je me relis pour un autre post ;) et voilà non franchement je sais plus compter :( honte à moi en 87 j'avais 18 ans...
j'ai commencé en 1977 !!! arf :D c vieux tout ça... ça nou rajeuni pas ma brave dame :D
Commenter cette publication
Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.
Discutez et échangez sur ce thème dans
notre forum PHP - SQL.