par
sirakawa » 30 oct. 2013, 13:07
<?PHP
/*Je suppose que le but de la fonction de refuserf l'emploi d'un mot faisant partie de la liste*/
function mot_pluriel($txt)
{
/*Cette fonction rendra un résultat aberrant si la dernière lettre est accentuée. Il vaut
mieux passer par mb
*/
mb_internal_encoding ("UTF-8");
/*En-dehors du fait que l'on ne puisse pas dire que les adverbes et les prépositions sont toujours pluriel,
la liste est très incomplète... Agissement existe au singulier
$mots_toujours_pluriels = array(
"Abcès",
"Discours",
"Ailleurs",
"Archives",
"Jamais",
"Abus",
"Remous",
"Agissements",
"Alors",
"Canevas",
"Revers",
"Appointements",
"Longtemps",
"Chaos",
"Héros",
"abois",
"Certes",
"Compas",
"Jus",
"aguets",
"Moins",
"Marais",
"Velours",
"environs",
"Dehors",
"Mets",
"Talus",
"confins",
"Parfois",
"Parcours",
"Mois",
"Décombres",
"Dessous",
"Poids",
"Doléances",
"Puis",
"Compas",
"Frais",
"Dessus",
"Concours",
"Funérailles",
"Quelquefois",
"printemps",
"Fiançailles",
"Désormais",
"Cours",
"Pourparlers",
"Toujours",
"Décès",
"Représailles",
"Exprès",
"Puits",
"ténèbres",
"Volontiers",
"Corps",
"Jadis",
"Relais",
"Fois",
"Gens");
/*la dernière lettre ? Cette fonction rendra un résultat aberrant si la dernière lettre est accentuée. Il vaut
mieux passer par mb*/
$last_occurrence = mb_substr($txt, -1);
print "dernière lettre $last_occurrence";
/*inutile de calculer à chaque itération la longueur du tableau. De plus il vaudrait mieux employer count */
$longueur = sizeof($mots_toujours_pluriels);
for($i = 0 ;$i < $longueur; $i++)
{
if(strtolower($txt) != strtolower ($mots_toujours_pluriels[$i]))//mots différents
{
if($last_occurrence == "s")//$txt se termine par s
/*le traitement suivant est effectué quelle que soit la valeur de txt et la boucle s'arrête dès le
premier mot du tableau.*/
{
echo "<p>[".$txt."] doit être different de[".$mots_toujours_pluriels[$i]."]</p> ";
$txt_end = substr($txt, 0, strlen($txt)-1);
$txt_end = removeAccents($txt_end);
// echo "<BR />Le mot est maintenant egal a : [".$txt_end."]<BR /><BR />";
//puisque dans les deux cas on retourne $txt_end, il vaut mieux avoir un seul point de sortie.
//return $txt_end;
}
else
{
$txt_end = $txt;
}
}
}
return $txt_end;
}
$z = mot_pluriel("mévaisé");
?>
<?PHP
/*Je suppose que le but de la fonction de refuserf l'emploi d'un mot faisant partie de la liste*/
function mot_pluriel($txt)
{
/*Cette fonction rendra un résultat aberrant si la dernière lettre est accentuée. Il vaut
mieux passer par mb
*/
mb_internal_encoding ("UTF-8");
/*En-dehors du fait que l'on ne puisse pas dire que les adverbes et les prépositions sont toujours pluriel,
la liste est très incomplète... Agissement existe au singulier
$mots_toujours_pluriels = array(
"Abcès",
"Discours",
"Ailleurs",
"Archives",
"Jamais",
"Abus",
"Remous",
"Agissements",
"Alors",
"Canevas",
"Revers",
"Appointements",
"Longtemps",
"Chaos",
"Héros",
"abois",
"Certes",
"Compas",
"Jus",
"aguets",
"Moins",
"Marais",
"Velours",
"environs",
"Dehors",
"Mets",
"Talus",
"confins",
"Parfois",
"Parcours",
"Mois",
"Décombres",
"Dessous",
"Poids",
"Doléances",
"Puis",
"Compas",
"Frais",
"Dessus",
"Concours",
"Funérailles",
"Quelquefois",
"printemps",
"Fiançailles",
"Désormais",
"Cours",
"Pourparlers",
"Toujours",
"Décès",
"Représailles",
"Exprès",
"Puits",
"ténèbres",
"Volontiers",
"Corps",
"Jadis",
"Relais",
"Fois",
"Gens");
/*la dernière lettre ? Cette fonction rendra un résultat aberrant si la dernière lettre est accentuée. Il vaut
mieux passer par mb*/
$last_occurrence = mb_substr($txt, -1);
print "dernière lettre $last_occurrence";
/*inutile de calculer à chaque itération la longueur du tableau. De plus il vaudrait mieux employer count */
$longueur = sizeof($mots_toujours_pluriels);
for($i = 0 ;$i < $longueur; $i++)
{
if(strtolower($txt) != strtolower ($mots_toujours_pluriels[$i]))//mots différents
{
if($last_occurrence == "s")//$txt se termine par s
/*le traitement suivant est effectué quelle que soit la valeur de txt et la boucle s'arrête dès le
premier mot du tableau.*/
{
echo "<p>[".$txt."] doit être different de[".$mots_toujours_pluriels[$i]."]</p> ";
$txt_end = substr($txt, 0, strlen($txt)-1);
$txt_end = removeAccents($txt_end);
// echo "<BR />Le mot est maintenant egal a : [".$txt_end."]<BR /><BR />";
//puisque dans les deux cas on retourne $txt_end, il vaut mieux avoir un seul point de sortie.
//return $txt_end;
}
else
{
$txt_end = $txt;
}
}
}
return $txt_end;
}
$z = mot_pluriel("mévaisé");
?>