Page 1 sur 1

d' ou de ?

Posté : 29 août 2005, 20:46
par Eolymhn

Code : Tout sélectionner

function d ($chaine) { if (preg_match('#^[aâàäeéêèëiîïoôöuûùüyÿh]#i',trim($chaine))) return 'd\''.trim($chaine); elseif (preg_match('#^[^aâàäeéêèëiîïoôöuûùüyÿh]#i',trim($chaine))) return 'de '.trim($chaine); else return $chaine; }

Posté : 30 août 2005, 00:18
par JazzFinder
Oh! Vénéré Fils de Gaia,
Éclaire-nous de ta lumière

Fais un effort, chi-chouiya
Pour t'aider à résoudre le mystère

Explique ceci par cela
Évite l'ambiguité et sois plu clair!

Car à vue d'oeil comme ça
On dirait une expression irrégulière!
:wink:

Posté : 30 août 2005, 00:25
par JazzFinder
Une dernière chose...
aussi exprimée en prose

Ne t'étonne guère
si je t'écris ces vers

pour malheureusement t'annoncer
que ton post pourrait être supprimé

Ou, comble de bonheur,
juste viré du forum des développeurs!

Re: d' ou de ?

Posté : 30 août 2005, 00:56
par naholyr

Code : Tout sélectionner

function d ($chaine) { if (preg_match('#^[aâàäeéêèëiîïoôöuûùüyÿh]#i',trim($chaine))) return 'd\''.trim($chaine); elseif (preg_match('#^[^aâàäeéêèëiîïoôöuûùüyÿh]#i',trim($chaine))) return 'de '.trim($chaine); else return $chaine; }
Sans vouloir trop m'avancer, on ne doit pas tomber bien souvent dans le else ;)
function d ($chaine) {
    $chaine = trim($chaine);
    return preg_match('#^[aâàäeéêèëiîïoôöuûùüyÿh]#i', $chaine)
        ? "d'$chaine"
        : "de $chaine";
}

Posté : 30 août 2005, 01:52
par Eolymhn
Le else c'est une simple sécurité ... Je me sent mal sans : if ! elseif ! et else ? bin le else ?

c'est frustrant sans lui ;)

Oui un simple if/else passe bien.

JazzFinder > imagines que tu ais dans une variable un mot, le pseudo d'un membre ...

Si tu veux écrire sur ton site : "citation de membre", tu ne sais pas si ce serra d' ou de ...

donc plutot que de faire : 'citation de '.$membre;
tu fais : 'citation '.d($membre);
.
Ce qui t'évite d'avoir "citation de Anne" mais tu as "citation d'Anne". ;)

^^

Posté : 01 sept. 2005, 21:46
par Eolymhn

Code : Tout sélectionner

function d ($chaine) { if(preg_match('#^les #i',trim($chaine))) return preg_replace('#^les #i','des ',trim($chaine)); elseif(preg_match('#^le #i',trim($chaine))) return preg_replace('#^le #i','du ',trim($chaine)); elseif(preg_match('#^[aâàäeéêèëiîïoôöuûùüyÿh]#i',trim($chaine))) return 'd\''.trim($chaine); elseif(preg_match('#^[^aâàäeéêèëiîïoôöuûùüyÿh]#i',trim($chaine))) return 'de '.trim($chaine); else return $chaine; }
les --> des
le --> du