IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

enlever des carcteres propres au html


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de elghadi_mohamed
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2005
    Messages : 227
    Par défaut enlever des carcteres propres au html
    Bonjour


    j'ai fais une application sur un serveur web et je voudrais enregistrer des messages du trafic sur le serveur dans un fichier log mais mon probleme etait au niveau des manipulation des chaines affichees dans ma page Html , je m'explique:
    j'ai fais un petit formulaire qui permet la saise des donnnees et leurs traitement et retourne un message de diagnostique à l'usager du service qui s'affichera dans la page html et pour garantir l'affichage des caracteres accentues j'utilise des sequences comme : é pour é et ainsi de suite dans mon code html. pour faire un fichier log je recupere le message et je dois l'analyser et remplacer les chaines speciales par le caracetere associe et c'est là où il y a le probleme.

    voici le bout de code qui permet de verifier ça (à titre d'exemple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    my $chaine = "numéro de téléphone";
    my @tab = split(/ /,$chaine);
    my $i =0;
    while(exists($tab[$i])){
    $tab[$i]=~s/(é)/e/;
    $i++;
    }
    my $chaines = join(" ",@tab);
    print "la chaine :$chaines\n";
    et voici le resultat:


    merci de votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9
    Par défaut
    Bonsoir,

    Le problème provient d'une option qui manque à ton expression régulière : l'option 'g' (global match). En effet tu 'split' avec come délimiteur l'espace, donc dans $tab[2] tu auras "téléphone", soit deux occurences de é à modifier.
    Et si l'option 'g' n'estpas présente, seule la première de ces occurences est modifiée, ce qui explique ton résultat.

    Voici le code que je te propose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/perl
     
    use strict;
    use warnings;
     
    my $chaine = "numéro de téléphone";
    my @tab = split ' ', $chaine;
     
    for my $mot (@tab) {
        $mot =~ s/é/e/g;
    }
     
    $chaine = join ' ',@tab;
    print "la chaine : $chaine\n";
    - use strict / warnings pour un code plus propre
    - on remplace le while par un foreach


    Deimos

  3. #3
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tu pourrais aussi utiliser HTML::Entities tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    use HTML::Entities;
     
    my $chaine = "numéro de téléphone";
     
    print "la chaine : ", decode_entities($chaine), "\n";
    Plus simple et plus général...
    Inutile de réinventer la roue ! (sauf dans un but pédagogique bien sûr)

    --
    Jedaï

  4. #4
    Membre éclairé Avatar de elghadi_mohamed
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2005
    Messages : 227
    Par défaut
    merci de votre aide c'est reglé .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction pour enlever des tags
    Par sunp dans le forum API standards et tierces
    Réponses: 14
    Dernier message: 19/12/2005, 21h47
  2. [CSS] copie des styles par défaut html...possible?
    Par luta dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 27/10/2005, 09h50
  3. [MySQL] Formulaire php + bdd = perte des sauts de ligne html ?
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/10/2005, 12h19
  4. Réponses: 5
    Dernier message: 07/07/2004, 17h05
  5. [OPENOFFICE] Transformation des tableaux OOo en HTML
    Par GrandFather dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 15/05/2004, 19h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo