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 PHP Discussion :

[PHP-JS] Longeur de chaine et caracteres unicodes / spéciaux


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut [PHP-JS] Longeur de chaine et caracteres unicodes / spéciaux
    Salut,


    j avais remonté un post pour le forum ajax mais personne me semble inspiré par mon probeme la bas, je poste donc ici , mon problème étant lié à la fois au PHP et au Javascript.


    Mon problème: compter les caractères d' une chaine de caractères pour une application qui doit calculer un devis en fonction de la longeur d un texte entré par l' internaute.

    tout est ok tant qu on reste sur des caractères ansi , seulement dès que des caractères style "€" s" en mélent , c' est plus pareil...

    démonstration simple avec deux pages : une PHP qui fait un simple strlen/urldecode et un formulaire HTML et une requete AJAX.



    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <html><head>
    <body>
    <script type='text/javascript'>
    function getObj(name) { 
       var ns4 = (document.layers) ? true : false; 
       var w3c = (document.getElementById) ? true : false; 
       var ie4 = (document.all) ? true : false; 
       if (ns4) return eval('document.' + name); 
       if (w3c) return document.getElementById(name); 
       if (ie4) return eval('document.all.' + name); 
       return false; 
    }
     
    var req = null;
     
    function Ajax() {
            
            getObj("result").innerHTML="chargement...";
            
            var data    = getObj("data").value;
     
            var url="strlen.php?data=" + escape(data);
            
             try { req = new ActiveXObject("Msxml2.XMLHTTP"); } 
       catch(e) { 
          try { req = new ActiveXObject("Microsoft.XMLHTTP"); } 
          catch(oc) { req = null; } 
       } 
       if (!req && typeof XMLHttpRequest != "undefined") { req = new XMLHttpRequest(); } 
     
       if (req != null) {
          req.onreadystatechange = processChange; 
          req.open("GET", url, true); 
          req.send(null); 
       }    
    }
     
    function processChange() { 
            
       if (req.readyState == 4 && req.status == 200) {
          getObj("result").innerHTML = req.responseText;
            }       
    } 
    </script>
    <form action=''>
    <input type="text" name='data' value='€' />
    <input type="button" value='click me' onclick='Ajax();' />
    </form>
    <div id='result'>...........</div>
    </body></html>


    du coté php

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
     
    echo "strlen(urldecode(\$_GET['data'])=".strlen(urldecode($_GET["data"]));
     
    ?>

    le resultat du strlen est de 6, or j aimerais plutot 1

    peut etre y a t il mieux que strlen , mais quoi ? sinon comment contourner ce probleme.

    Merci d avance.

  2. #2
    Membre régulier Avatar de zamanika
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 106
    Points : 102
    Points
    102
    Par défaut
    Salut,

    Regarde du coté des fonctions mb_string

    Problème, il faut qu'elles soient dispo chez l'hébergeur...

  3. #3
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Salut, le problème vient de ton escape() javascript. Plus d'informations sur cette page : http://jesus2099.free.fr/blog/2005/0...en-php-et.html

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  2. Fonction php qui selectionne une chaine de caractere
    Par Death83 dans le forum Langage
    Réponses: 3
    Dernier message: 23/12/2005, 14h28
  3. Pb Update avec chaine de caractere
    Par JuJu° dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/05/2003, 15h58
  4. [LG]comparaison de chaines de caracteres
    Par thesam dans le forum Langage
    Réponses: 6
    Dernier message: 20/05/2003, 22h41
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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