Accueil > Forum > > > > Remplacer des blocs {masculin/feminin} par masculin ou feminin
Remplacer des blocs {masculin/feminin} par masculin ou feminin
lundi 19 octobre 2009 à 19:34:13 |
Remplacer des blocs {masculin/feminin} par masculin ou feminin

DarkCid
|
Bonjour,
j'ai une chaîne de caractère genre "Bonjour {Monsieur/Madame}, ..."
je voudrais pouvoir, selon le sexe que je passe en paramètre, remplacer le bloc {Monsieur/Madame} soit par Monsieur soit par Madame. il peut y avoir plusieurs blocs de ce type avec des mots différents de chaque côté du "/" bien sûr.
j'ai fait un truc de ce genre
Code PHP :
$title_array = str_split($this->title);
$title = '';
$male = '';
$female = '';
$sex_indicator = '';
foreach($title_array as $i){
switch($i){
case '{':
$sex_indicator = 'm';
break;
case '/':
if($sex){
$title.=$male;
}
$sex_indicator = 'f';
break;
case '}':
if(!$sex){
$title.=$female;
}
$sex_indicator = '';
$male = '';
$female = '';
break;
default:
switch($sex_indicator){
case 'm':
$male.=$i;
break;
case 'f':
$female.=$i;
break;
default:
$title.=$i;
break;
}
break;
}
}
alors c'est sûr, sa marche, mais qu'est-ce que c'est crade ! vous auriez pas une petite solution qui fasse pas 20 lignes ?
Espérer le meilleur
Prévoir le pire
|
|
lundi 19 octobre 2009 à 20:05:54 |
Re : Remplacer des blocs {masculin/feminin} par masculin ou feminin

Arto_8000
|
Tu peux toujours utiliser la fonction preg_replace pour faire ce genre de truc. C'est assez simple, il faut juste bien construire son expression régulière.
Pour le premier élément dans les accolades, utilise $1 comme paramètre de remplacement et $2 pour le deuxième :
preg_replace('/\{(.*)\/(.*)\}/', '$1', $tonTexte); OU
preg_replace('/\{(.*)\/(.*)\}/', '$2', $tonTexte);
|
|
mardi 20 octobre 2009 à 11:32:26 |
Re : Remplacer des blocs {masculin/feminin} par masculin ou feminin

DarkCid
|
Mais je sais pas à l'avance par quoi remplacer le texte, en fait je ne sais pas du tout ce qu'il y a entre les { }, je sais uniquement le sexe
Espérer le meilleur
Prévoir le pire
|
|
vendredi 23 octobre 2009 à 15:00:02 |
Re : Remplacer des blocs {masculin/feminin} par masculin ou feminin

Arto_8000
|
C'est justement ça que je t'ai proposé ...
Code PHP : <?php
$tonTexte = 'Ton texte ici ...';
if ($sexe == 'masculin') {
$tonTexte = preg_replace('/\{(.*)\/(.*)\}/', '$1', $tonTexte);
} else {
$tonTexte = preg_replace('/\{(.*)\/(.*)\}/', '$2', $tonTexte);
}
?>
|
|
vendredi 23 octobre 2009 à 15:08:17 |
Re : Remplacer des blocs {masculin/feminin} par masculin ou feminin

DarkCid
|
Ah ok,
sa marche presque, j'aurais besoin d'une légère modif si sa te dérange pas : en fait dans les blocs {M/F}, l'une des deux parties peut etre vide
exemple : "je suis un{/e} {homme/femme}"
j'ai essayais avec ton code, et le premier bloc pose problème, dans le cas feminin il m'affiche "Je suis unfemme" et dans le cas masculin il m'affiche "Je suis un/e} {homme"
Merci d'avance
Espérer le meilleur
Prévoir le pire
|
|
vendredi 23 octobre 2009 à 17:50:36 |
Re : Remplacer des blocs {masculin/feminin} par masculin ou feminin

DarkCid
|
En fait sa marche pas des masses :
Code PHP :
<?php
$sexe = 'm';
$txt = 'Je suis {un/une} {homme/femme}';
if ($sexe == 'm') {
$txt = preg_replace('/\{(.*)\/(.*)\}/', '$1', $txt);
} else {
$txt = preg_replace('/\{(.*)\/(.*)\}/', '$2', $txt);
}
echo $txt;
?>
Avec sexe =='m' sa me donne : "Je suis un/une} {homme"
Avec sexe =='f' sa me donne : "Je suis femme"
Espérer le meilleur
Prévoir le pire
|
|
samedi 24 octobre 2009 à 01:33:56 |
Re : Remplacer des blocs {masculin/feminin} par masculin ou feminin

Arto_8000
|
Réponse acceptée !
Ah, j'avais pas testé avec plusieurs. Il y a une petite modification à faire pour que ça fonctionne bien dans l'expression régulière.
Code PHP : <?php
$sexe = 'm';
$txt = 'Je suis {un/une} {homme/femme}';
if ($sexe == 'm') {
$txt = preg_replace('/\{(.*?)\/(.*?)\}/', '$1', $txt);
} else {
$txt = preg_replace('/\{(.*?)\/(.*?)\}/', '$2', $txt);
}
echo $txt;
?>
|
|
lundi 26 octobre 2009 à 09:24:33 |
Re : Remplacer des blocs {masculin/feminin} par masculin ou feminin

DarkCid
|
Cool merci, sa marche au poil !
Espérer le meilleur
Prévoir le pire
|
|
Cette discussion est classée dans : case, title, break, sex, indicator
Répondre à ce message
Sujets en rapport avec ce message
checkbox et initiales [ par titigrou ]
voila ce que tu avais fait la dernière fois:function visible(nom, row, col){ if (document.getElementById(nom).checked==1) { document.getElementById('
problème avec id resource, non compris!!! [ par titigrou ]
kikou!!j'ai un gros problème:j'ai un tableau ou je veux afficher le nom des voitures:for ($j=0;$j{ switch ($j) { case 0 : echo"".$voiture.""
Ca marchait, ça marche pu :'( [ par Inekman ]
Bonjour à tous,J'ai écris une fonction qui renvoie une date avec 2 affichages possible en fonction du paramètre donné à la fonction.La fonction, la vo
Un bug dans le script, quelqu'un voit la reponse? [ par benbax ]
Voila le script : $dt=include("compteurDT.cpt"); //Contient le nombre x$msn=include("compteurMSN.cpt"); //Contient le nombre x$vnc=include("co
Signet en Php ? [ par dumbop84 ]
pff .... c dur le PHP surtout quand on est pas prgrammeur .... mon probléme a moi c que j'aimerai savoir si on peut faire des signer en php... j'ai u
Liste à choix multiple... [ par Ang3lo ]
Bonjour à tous,J'aimerai savoir quel est le code à inserer pour récupérer une donné venant d'une liste à chois multiple.Moi je met ça :switch ($source
Afficher une page en fonction du jour [ par Rimb0 ]
Bonjour à tous ! Comme le précise le titre de ce post, je cherche comment il serait possible d'afficher une page en fonction du jour ! Voici le scrip
Livre d'or [ par GillesWebmaster ]
Salut à tous j'ai un prob avec mon livre d'or:je vous mets les fichiers ce serait sympa de jetter un oeil...------------------------------------------
Modification de la classe mime_mail [ par BananaTree ]
slt tout le monde.j'utilise la classe mime_mail (ci desous) pour transmettre un mail depuis flash. coté flash pas de pb bien sur. mais en php, je misè
Le cas "Indifferent" dans les formulaires [ par islanmao ]
Bonjour tout le monde !Je voudrais savoir comment on fait pour gérer le cas "indifférent" dans les formulairesEnfait j'ai une base de données sur les
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|