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 :

Problème Strlen() et chaine de caractères


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 100
    Points : 48
    Points
    48
    Par défaut Problème Strlen() et chaine de caractères
    Bonjour,

    Je rencontre le problème suivant:

    Des informations créées via un editeur html sont stockées dans une bdd.

    Pour pouvoir effectuer une recherche via un script php sur ces informations je procède de la façon suivant.

    1- J'extrais les informations via une requete que je conserve dans une variable $resultat
    2- j'isole le texte "visible" par strip_tags($resultat);
    3- Je supprime les espaces en surnombre via le code suivant pour ne conserver que le texte sur lequel la recherche sera effectuée:
    Code : 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
     
    // On supprime les espaces en sur-nombre
    $tmp = explode(' ',$resultat); 
    $nb = count($tmp);
     
    for ($i=0; $i<$nb; $i++)
    { 			
         if (!eregi('&nbsp;',$tmp[$i]) &&  $tmp[$i] != "")
         {        
             //echo strlen($tmp[$i]);
     
             if ($i==0)
             {
                 $resultat= $tmp[$i];
              }
              else
              {
                 $resultat= $resultat." ".$tmp[$i];
              } 
          }
    }
    4- J'effectue un echo $resultat; qui me donne "mot1 mot2 mot3 mot4"

    Jusque la tout est ok!

    Lorsque je fais un echo strlen($resultat); cela devrait afficher 19. Hors je me retrouve avec un total de 36 .

    J'ai donc effectué un test en effectuant un echo strlen($tmp[$i]); dans ma boucle for(...) et effectivement je me retrouve avec un tas de résultats valant "2".

    Quelqu'un peut-il m'aider à obtenir un résultat correct ?
    Merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    tu dois probablement avoir des caractères qui trainent dans ta chain et qui sont mal nettoyés.Tu devrais regarder le code html affiché pour tes résultats, ou via un var_dump, ca devrait t'aider à identifier si il reste des caractères non désirés dans ta chaine.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    echo var_dump(trim($tmp[$i])) me renvoie : string(0) ""

  4. #4
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Problème d'unicode peux être ?

    Edit : http://fr3.php.net/manual/fr/function.strlen.php#72274

Discussions similaires

  1. [débutant] Problême avec les chaines de caractères
    Par Micky_du_57 dans le forum C++
    Réponses: 2
    Dernier message: 03/06/2007, 19h03
  2. Réponses: 8
    Dernier message: 06/05/2007, 21h47
  3. Problème classe perso chaine de caractères
    Par stof dans le forum Visual C++
    Réponses: 2
    Dernier message: 06/05/2007, 11h42
  4. Réponses: 5
    Dernier message: 26/07/2006, 11h13
  5. Réponses: 3
    Dernier message: 26/05/2006, 19h49

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