Utilisateurs en ligne: 2
SimpleMachines-fr / Forum 24 Mai 2012 à 18:36:00 *
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.


Connexion avec identifiant et mot de passe
Nouvelles:
Dernières versions de SMF :
- Stables : 1.0.18 (patch) ; 1.1.10 (patch)
- Développement : 2.0 RC1-2
 
 
Accueil Aide Rechercher wiki
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Aidez-moi à faire un « filtre » de typographie française  (Lu 3289 fois)
0 Membres et 2 Invités sur ce fil de discussion.
Lunatic
Administrateur
*
Hors ligne Hors ligne

Sexe: Homme
Messages: 472



Voir le profil WWW
« le: 18 Juillet 2006 à 19:03:53 »

Hello tous,

Une chose m'énerve sur mon forum (enfin, sur tous, mais je ne peux agir que sur le mien Tongue) : lire des messages qui sont des horreurs au niveau typographique (où l'utilisateur oublie l'espace avant les deux points ou en met un avant un point).

Il ne doit pas être compliqué de faire un « filtre » basé sur des expressions régulières et permettant, à l'affichage, de sortir un texte typographiquement correct. Mais voilà, les expressions régulières, c'est loin d'être mon fort Tongue Aussi ce fil s'adresse-t-il à tous ceux qui savent les manipuler et qui pourront donc m'aider à écrire un tel « filtre ».

Pour commencer doucement : comment faire pour afficher une espace insécable devant deux points (c'est à dire : soit insérer cette espace entre le mot précédant et les deux points, soit transformer une espace « normale » en espace insécable) ?

Merci pour votre aide Wink
Journalisée
zuper zeze
Confirmé
****
Hors ligne Hors ligne

Messages: 104


Voir le profil
« Répondre #1 le: 18 Juillet 2006 à 19:26:12 »

dans admin> message et fil de discussion >mots censurés
tu as la possibilité de remplacé une expression par une autre apres c'est sur qu il y a du boulot...
Journalisée
Lunatic
Administrateur
*
Hors ligne Hors ligne

Sexe: Homme
Messages: 472



Voir le profil WWW
« Répondre #2 le: 18 Juillet 2006 à 19:45:01 »

Pour faire ce que je veux faire, ce n'est pas possible d'utiliser cette fonctionnalité.
Journalisée
Lunatic
Administrateur
*
Hors ligne Hors ligne

Sexe: Homme
Messages: 472



Voir le profil WWW
« Répondre #3 le: 18 Juillet 2006 à 23:33:51 »

Bon voilà le genre de truc que je peux sortir en php :

Code:
preg_replace('/(.+[^ ])( *)\?/','\1 ?',$montexte);

Ceci permet de transformer :

Code:
Qui est là?
ou
Code:
Qui est là ?
en
Code:
Qui est là ?

Malheureusement,

Code:
Qui est là? Houhou?

donne :

Code:
Qui est là? Houhou ?

Autrement dit ça n'agit que sur le dernier point d'interrogation  Undecided
« Dernière édition: 18 Juillet 2006 à 23:38:30 par Lunatic » Journalisée
GravuTrad
Administrateur
*
Hors ligne Hors ligne

Messages: 2462



Voir le profil
« Répondre #4 le: 19 Juillet 2006 à 00:11:31 »

http://fr3.php.net/preg_replace
Journalisée

On a tous besoin d'un plus petit que soi! (Petit!Petit!)
Lunatic
Administrateur
*
Hors ligne Hors ligne

Sexe: Homme
Messages: 472



Voir le profil WWW
« Répondre #5 le: 19 Juillet 2006 à 01:03:20 »

Oui merci, je connais l'existence du manuel php Tongue Malheureusement ça ne suffit pas à m'aider.

Bon, en pompant dans les archvies d'un site sur le php, j'ai pu faire ça :

Code:
$message['body'] = eregi_replace("([ ]*)([\.,]{1})", "\\2", $message['body']);

Ça donne de bons résultats en enlevant un espace précédant un point ou une virgule. Mais en fait ça ne fait qu'enlever 1 seul espace ; donc si x espaces précèdent (où x > 1), le résultat affiché contient toujours (x-1) espace(s).
Journalisée
Sparcool
Administrateur
*
Hors ligne Hors ligne

Messages: 581



Voir le profil WWW
« Répondre #6 le: 19 Juillet 2006 à 01:20:17 »

Je ne sais pas comment faire cela avec ce bout de code, mais n'y aurait-il pas un moyen de compter le nombre d'espace et de la ramener tout simplement à 1 ?
Journalisée

Avant de poser une question, merci de lire la documentation et d'effectuer une recherche.
Lunatic
Administrateur
*
Hors ligne Hors ligne

Sexe: Homme
Messages: 472



Voir le profil WWW
« Répondre #7 le: 19 Juillet 2006 à 11:41:39 »

Non, car parfois il faut le ramener à 0. Il est plus simple de faire un code particulier par type de ponctuation Smiley

En tout cas je viens de trouver le code pour supprimer les espaces (quelque soit leur nombre) devant points et virgules :

Code:
$message['body'] = eregi_replace("(([ ]*) )*([ ]*)([\.,]{1})", "\\4", $message['body']);
Journalisée
Pages: [1]   Haut de page
Imprimer
SimpleMachines-fr / Forum  |  Le Bazar  |  Détente  |  Informatique  |  Fil de discussion: Aidez-moi à faire un « filtre » de typographie française
 
Aller à:  

Powered by SMF 1.1.16 | SMF © 2011, Simple Machines

Tous les logos et les marques présentes sur ce site appartiennent à leurs propriétaires respectifs.
Des détails sur les copyrights et les modules installés peuvent être trouvés Ici.

Vous pouvez syndiquer le contenu de ce site : Flux-RSS/RDF.

Site propulsé par pragmaMx 0.1.11.3.

Valid HTML 4.01 Transitional CSS ist valide!
Design by © www.ndeezign.com