Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2007, 19h21   #1
Futur Membre du Club
 
Administrateur systèmes et réseaux
Inscription : novembre 2007
Messages : 146
Détails du profil
Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : novembre 2007
Messages : 146
Points : 19
Points : 19
Par défaut Remplacement de valeur

Bonsoir a tous

je commence a me mettre un peu dans le bain du PHP et malheuresement s'offre a moi un dileme :p Normal pour un debut.

Voilà, j'aimerai faire une zone de texte avec un bouton Convertir qui servirai a convertir, jure ? (sisi)

Mais enfaite à l'intérieur de cette zone de texte je voudrais que par exemple si on mette :

Fermes 56

A la sorti ca le convertisse en Fermes 56. En effet 56 étant uen variable je ne sais pas comment m'y prendre car ca peu etre 56 comme 300 etc mais je voudrai que le nombre qui suit Fermes sois en rouge format BBcode.

De plus le texte convertie j'aimerai qu'il s'affiche dans une autre zone de texte par exemple avec un bouton Selectionner tout et Copier. Au pire ca je peu me creser le meninge car j'y est pas encore réfléchie mais ce qui s'offre a moi c'est le soucis du formatage de la variable.

Car enfaite ce que je voudrai c'est sur une page sois php sois html mettre une partie php (ou que html si c'est possible en html) ou il y aurai 2 zone de texte et ou on colle du texte genre :

Fermes 56 Guerrier 5000
Maisons 500 Tours 41

Que a la sortie ca sorte en

Fermes [color=#]56[/color] Guerrier [color=#]5000[/color]
Maisons [color=#]500[/color] Tours [color=#]41[/color]

Certes mon objectifs après c'est de faire une liste déroulante avec le choix des couleurs qu'on peu changer mais ca c'est optionnel Donc pour le moment je me concentre sur le formatage.

[Moi j'avais pensé a faire du genre
echo Fermes [color=#.....]%[/color]
Mais le debut (cherché la ligne Fermes %) je bloque et encore je sais meme pas si c'est bon ce que j'ai fait]


Quelqu'un aurai une idée, une solution, ou autre ?

Je vous remercie a tous, bonen soriée
Rian83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 20h18   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Il faudrait regarder du côté des expressions régulières, exemple :
Code :
1
2
3
4
5
6
7
8
9
$patterns = array(
    '~(?<=Fermes)\s+(\d+)~i' => ' <span class="fermes">\1</span>',
    '~(?<=Maisons)\s+(\d+)~i' => ' <span class="maisons">\1</span>',
    '~(?<=Guerriers)\s+(\d+)~i' => ' <span class="guerriers">\1</span>',
    '~(?<=Tours)\s+(\d+)~i' => ' <span class="tours">\1</span>'
);
 
$out = preg_replace(array_keys($patterns), array_values($patterns), $in);
echo $out;
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 21h20   #3
Futur Membre du Club
 
Administrateur systèmes et réseaux
Inscription : novembre 2007
Messages : 146
Détails du profil
Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : novembre 2007
Messages : 146
Points : 19
Points : 19
J'ai regarder comem tu m'a dis donc et plsu précisement à II-7. Les modificateurs je suppose que c'est ca mais c'est un peu complexe pour un debut pour moi enfaite.

Je comprend pas le truc, le seul truc que je crois avoir compris c'est :
echo "Le masque <strong>$pattern</strong> correspond-il à :<br /><ul>"; qui appel a la place de $pattern met #<strong>(.*)</strong>#

La franchement sur ce coup j'avoue que je suis completement a la ramasse :s

Normale ?
Rian83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 22h22   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par Rian83
J'ai regardé comme tu m'as dit donc et plus précisément à II-7. Les modificateurs je suppose que c'est ça mais c'est un peu complexe pour un début pour moi en fait.
Les expressions régulière ne se résument pas à ça et je n'ai plus haut utilisé que l'option (ou modificateur - qu'on trouve tout à la fin) i pour que la recherche soit insensible à la casse.

Citation:
Envoyé par Rian83
Je comprend pas le truc, le seul truc que je crois avoir compris c'est :
echo "Le masque <strong>$pattern</strong> correspond-il à :<br /><ul>"; qui appel a la place de $pattern met #<strong>(.*)</strong>#
Oui mais cette instruction ne tire pas partie des expressions régulières : c'est purement et simplement une spécificité du langage PHP (que l'on appelle interpolation).

Par exemple, #<strong>(.*)</strong># est un motif (une expression régulière) qui a pour but de trouver et/ou extraire et/ou remplacer (ça dépend en partie de la fonction employée : preg_match ou preg_match_all vs preg_replace) tout texte (. : tout caractère et * : désigne une répétition de 0 à une infinité d'occurrences, donc éventuellement d'aucun caractère - chaîne vide) se situant dans une balise strong (c'est théorique car j'ai volontairement simplifié en omettant un détail).

Aujourd'hui les expressions régulières sont un outil, on les retrouve de base dans de nombreux langages de programmation (Perl, Ruby, Javascript, ...) et ainsi que dans certains logiciels de développement (éditeur/IDE) bien que pas forcément sous la forme PCRE (Perl-Compatible Regular Expressions).

En utilisant les fonctions standard de traitement prévus pour les chaînes de caractères vous pourrez probablement mais plus difficilement arriver à vos fins.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h19.


 
 
 
 
Partenaires

Hébergement Web