-
    Techniques et conseils

Note: L'ensemble des "Tips of the Week" de l'éditeur OmniPilot sont régulièrement traduits chaque semaine. Vous les retrouvez ci-après

LISTE DES TUTORIAUX

Formatage de nombres et calculs FileMaker Pro sous Lasso

Passer facilement de FileMaker Pro CDML à Lasso Professional 8

Outil de Maintenance MySQL

Indicateur de progression - Progress bar

Uploads de fichiers sous Lasso Professional 8

Utilisation des arrays pour la création d'inlines dynamiques

Balises de gestion du Cache

Méthodes d'appel des balises

Encryption de données

Notions de Sessions

Gestion des erreurs

Pages d'erreur customisées

Variables globales

Optimisations de MySQL

Symboles d'assignation mathématiques

Expression régulières (Nettoyage du texte)

Expressions régulières (Rechercher/remplacer)

Expressions régulières (principes de base)

Optimisez votre code HTML en utilisant les balises [Loop] et [Iterate]

Utilisation des boucles (Loops)

Utilisation de la balise [Action_Params]

Techniques de commentaires


     
Blueworld, Windows Server 2003, Windows XP, RedHat, Linux, Mac OS X, MACOS, Apache, MySQL, FIlemaker Pro

Edité par OmniPilot Software, Lasso Professional fonctionne sous Windows 2000/2003/XP et Linux RedHat et Apache Server - Il s'intègre parfaitement à MySQL™ et FileMaker Pro™ ainsi que toutes autres bases de données
     




Déposez votre nom de domaine avec ELIDEE

Sujet: Expression régulières (Nettoyage du texte).

Résumé:
Cet article décrit comment utiliser les expression régulières ainsi que les balises "String" pour nettoyer des champs de saisie de formulaires ainsi que des affichages HTML.

Détail:
Les expressions régulières sont utilisées par de nombreux programmes pour spécifier des paramètres lors de rechercher/remplacer. Une expression régulière est un ensemble de metacaractères qui spécifient quel texte rechercher. Ils sont similaires aux "wildcards" (jokers) dans MySQL ou FileMaker, mais en beaucoup plus puissants. Veuillez vous référer au précédents articles Expressions régulières, les basiques et Expressions régulières (Rechercher/Remplacer).

L'article suivant détaille l'utilisation de la balise [String_ReplaceRegExp] de manière à "nettoyer" des saisies d'utilisateurs ainsi que l'affichage HTLM avant de l'envoit au navigateur. D'autres articles détaillerons d'autres concepts relatifs à l'utilisation des expressions régulières.

La page visible sur Regular Expression Explorer vous offre l'opportunité d'essayer différentes expressions régulières et d'en voir le résultat. Les exemples dans cet article peuvent être essayés dans cette page
Code Source


"Nettoyer" les saisies d'utilisateurs

Lorsque les utilisateurs saisissent des données dans un formulaire Web, leur saisie peut ne pas être très rigoureuse et fiable. Ils peuvent ajouter des espaces ou des retours-charriot en trop, laisser des espaces en début et en fin de saisie et entrer du code HTML là où vous n'acceptez que du texte simple. Il est donc souvent souhaité de nettoyer ce code avant qu'il ne soit stocké dans une base de données. Les exemples de cet article vous montrerons comment nettoyer les données entrées par des utilisateurs ainsi que l'élimination de tout code HTML.

La première chose à faire est de normaliser les espaces dans la chaîne de caractères. La balise [String->Trim] peut être utilisée pour éliminer rapidement ces caractères espaces au début et à la fin de la chaîne. La balise [String_ReplaceRegExp] quant à elle, peut être utilisée pour éliminer les espaces, les tabulations et les retours-charriot.

var: 'machaine' = (action_param: 'entree_utilisateur');
$machaine->trim;

Ensuite, nous allons utiliser [String_ReplaceRegExp] pour changer tous les espaces en trop ou les tabulations dans la saisie de l'utilisateur en un seul espace. Comme deux espaces consécutifs ou les tabulations ne sont habituellement pas pris en compte dans un affichage HTML (les navigateurs n'affichent qu'un seul espace) nous n'avons pas à les stocker dans une base.

var: 'machaine' = (string_replaceregexp: $machaine,
-find='[ \t]+', -replace=' ');

Nous pouvons ensuite éliminer tous les retours-charriot dans la saisie. Nous allons faire ceci en trois étapes. Dans la première, nous allons normaliser tous les retour-charriots de manière à ce qu'ils soient tous du type \r (et non \n ou \r\n). Si un retour est encadré par des espaces, nous allons réduire cela à un seul retour-charriot. Et si sur une ligne on constate la présence de plus de deux retours-charriot nous allons les supprimer (afin de n'autoriser qu'une seule ligne blanche entre deux paragraphes).

var: 'machaine' = (string_replaceregexp: $machaine,
-find='\r\n|\n', -replace='\r');
var: 'machaine' = (string_replaceregexp: $machaine,
-find=' ?\r ?', -replace='\r');
var: 'machaine' = (string_replaceregexp: $machaine,
-find='\r\r+', -replace='\r\r');

Maintenant en utilisant ces 5 étapes en une seule fois sur une saisie telle que celle-ci:

  Cette   saisie est   mal    faite.

Cela permettra de sauver ceci dans la base:

Cette saisie est mal faite.


Nettoyer tout code HTML d'une saisie

Notre but est maintenant de retirer tout code HTML d'une saisie d'utilisateur. Ce code va tout simplement retirer tout code inclut entre des &lt ... >.

var: 'machaine' = (string_replaceregexp: $machaine,
-find='<.*?>', -replace='');

En utilisant cette expression régulière sur:

Lien vers <a href="www.exemple.com">Lien vers les exemples de code</a>.

Il s'affichera ainsi:

Lien vers les exemples de code.


Retirer tout code HTML de l'affichage

Ces mêmes techniques peuvent être utilisées pour nettoyer de tout code HTML une page servie au visiteur d'un site Web. Cela peut restreindre ainsi la quantité de code renvoyée à un navigateur web. Tout le code HTML qui est renvoyé par Lasso est stocké dans une variable $__html_reply__. Cette variable peut être manipulée comme toute autre variable.

Nous souhaitons appliquer quelques expressions régulières à la variable $__html_reply__, mais seulement après que la page ait été générée. Ceci est accompli dans un bloc conteneur [Handle: True] ... [/Handle]. Ce code doit être placé sur la page qui est servie. Il ne peut pas être placé dans un include.

Le code sera le même que celui utilisé pour nettoyer les inputs issus de saisies d'utilisateurs via des formulaires. Le code est nettoyé, les retours-charriot normalisés, les enchaînements de plusieurs espaces et tabulations sont éliminés et remplacés par un seul espace, les espaces entourant un retour-charriot sont éliminés et les enchaînements de plus de deux retours-charriot consécutifs sont réduits à deux maximum. Une dernière étape consistera à réduire les retours-charriots qui se trouvent entre des balises HTML à un maximum.

handle:true;
$__html_reply__->trim;
var: '__html_reply__' = (string_replaceregexp: $__html_reply__,
-find='\r\n|\n', -replace='\r');
var: '__html_reply__' = (string_replaceregexp: $__html_reply__,
-find='[ \t]+', -replace=' ');
var: '__html_reply__' = (string_replaceregexp: $__html_reply__,
-find=' ?\r ?', -replace='\r');
var: '__html_reply__' = (string_replaceregexp: $__html_reply__,
-find='>\r+<', -replace='>\r<');
var: '__html_reply__' = (string_replaceregexp: $__html_reply__,
-find='\r\r+', -replace='\r\r');
/handle;

Important - avant d'utiliser ce code sur votre site Web testez le avec attention afin de vous assurer qu'il ne produit aucun effet facheux. Ce code modifie tout le code HTML qui est servit d'une page incluant les JavaScripts, textareas, blocs pre,..., etc. Il n'est pas à utiliser po ur n'importe quelle page HTML dans laquelle la structure des caractères "espace" est importante.


Plus d'information

Cet article aborde seulement la surface de ce qu'il est possible de faire à l'aide des expressions régulières. D'autres concepts seront abordés dans des articles à venir.

Le meilleur moyen d'avoir une perception du fonctionnement des balises d'expressions régulières est d'utliser la page Regular Expression Explorer et de modifier les paramètres vous même.

Plus d'informations sur ces balises peuvent être trouvées dans le manuel "Lasso 7 Language Guide" ou en ligne sur la référence de toutes les balises Lasso LDML 7 Reference.

Produit:    Lasso Professional
Plateformes:    Mac OS X, Windows 2000, Windows XP, Windows 2003, Red Hat Linux
Versions:    5.x, 6.x, 7.x
Auteur:    Fletcher Sandbeck - Blue World


     
Retour accueil
Lasso Studio
Lasso Professional
Communiqués Presse
Tutoriaux
Lasso & Filemaker
Evaluation gratuite
Hébergement Lasso/MySQL
Revendeurs
Historique logiciel
Tarifs - Commander
Nous contacter
     

Notre numéro de téléphone : +33 5 57 22 89 35

Hébergement mutualisé Lasso




Hébergement et location de baies de serveurs et Transit IP par ELIDEE


-  Accueil  -  Développer avec Lasso Studio  -  Déployer avec Lasso Professional  --
Administration du site webmaster@elidee.com | Copyright 2004-2010, Elidée SARL. Tous droits réservés
Toutes les marques citées sont déposées par leur propriétaire respectif