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] Fonction strlen en php


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut [PHP-JS] Fonction strlen en php
    Bonjour,

    Je me suis aperçu que la fonction php "strlen()" ne me renvoyait pas la même valeur que la fonction javascript "champ.value.length " et que le problème survenait sur les retours chariots qui sont comptabilisés pour un caractère en javascript et pour deux en php.

    Existe-t-il un moyen d'uniformiser cela ?

    merci

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo strlen("123\n123");
    Me renvoie bien 7. Un seul caractère pour le "\n", comme prévu... Tu peux me faire un exemple simple de ce type qui illustre ce que tu veux dire ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    As-tu essayé avec la fonction javascript ?

    J'utilise une fonction javascript pour controler le nombre de caractères saisis dans un textarea.

    Celle-ci m'annonce 2000 caractères et celle de PHP m'annonce 2015.

    J'ai enlevé les retours à la ligne et je me suis aperçu que c'était cela qui posait problème...

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Points : 67
    Points
    67
    Par défaut
    Salut,

    Ca pourrait pas venir du type de retour à la ligne ?
    Sur windows, c'est pas \n\r , alors que sur linux ce serait \n tout seul... ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    Peut-être je ne sais pas???

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    Oui mais quand tu fais echo ("123\n123");

    Il n'y a pas de retour à la ligne !

  7. #7
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par viny
    Oui mais quand tu fais echo ("123\n123");

    Il n'y a pas de retour à la ligne !
    Qu'est-ce que tu entends par retour à la ligne alors ? "\n" est le caractère Line Feed (LF) qui représente un retour chariot sous les systèmes UNIX.
    Sous mac c'est "\r", soit Carriage Return (CR), et sous windows c'est "\r\n", CRLF. Et c'est peut-être la source de ton problème.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    Le problème est là :

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo strlen('123\r\n456');
    j'obtiens 10

    Maintenant en javascript si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script type="text/javascript">
    msg='123\r\n456';
    alert(msg.length);
    </script>
    J'obtiens 8 !

    Donc impossible de comparer les deux valeurs...

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    Est-ce que ça veut dire que sous unix ou linux ma valeur de php sera la même que celle de javascript car pour le moment je développe sous windows ?

  10. #10
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par viny
    Le problème est là :

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo strlen('123\r\n456');
    j'obtiens 10

    Maintenant en javascript si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script type="text/javascript">
    msg='123\r\n456';
    alert(msg.length);
    </script>
    J'obtiens 8 !

    Donc impossible de comparer les deux valeurs...
    Le problème vient des guillemets en PHP.
    "\n" c'est un seul caractère, le caractère LF.
    '\n' c'est deux caractères, le caractère backslash et le caractère n.
    Avec des guillemets doubles, PHP interprète les caractères spéciaux et les variables PHP à l'intérieur des chaines. Avec des guillemets simples, non.
    http://pbnaigeon.developpez.com/tuto...phe-guillemet/

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    Ben merci que dire d'autre, j'ai appris quelque chose d'important ce matin !

    Merci et mille mercis

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    Je reviens à la charge car mon problème n'est pas résolu...

    Mon instruction PHP est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $longueur_message = strlen($_POST['textarea_inscrit_courrier_message']);
    Donc le message vient d'un textarea et j'ai par conséquent tjs un décalage.

  13. #13
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par viny
    Donc le message vient d'un textarea et j'ai par conséquent tjs un décalage.
    Je ne comprends pas ce que tu veux dire.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    Oui autant je peux ajouter des guillemets dans un texte là le texte à controler vient d'un textarea que je ne peux pas mettre entre guillemets.

  15. #15
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par viny
    Oui autant je peux ajouter des guillemets dans un texte là le texte à controler vient d'un textarea que je ne peux pas mettre entre guillemets.
    donne un exemple de ce que tu obtiens côté PHP

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    ben 12 en longueur et 10 pour javascript pour un même message

  17. #17
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par viny
    ben 12 en longueur et 10 pour javascript pour un même message
    serait-ce trop demander de savoir ce que contiennent les chaînes en question ?

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    Non pas du tout, voici ce qu'il ya dans le textarea :

    1234
    5678

  19. #19
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par viny
    Non pas du tout, voici ce qu'il ya dans le textarea :

    1234
    5678
    tu peux montrer le code PHP qui récupère le contenu du champ ?

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    Voilà ce qu'il y a dans le textarea :

    l'automne
    et
    l'hiver

    compté pour 22 caractères par javascript

    Voilà la chaine php que je récupère : l\'automne et l\'hiver

    Donc je m'aperçois que c'est quand il y aura des apostrophes que le pb se posera. Faudra par conséquent traiter la chaine avant de la mesurer.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [PHP-JS] passer une variable php à une fonction JS
    Par naivenu dans le forum Langage
    Réponses: 4
    Dernier message: 18/07/2008, 13h06
  2. Réponses: 5
    Dernier message: 14/06/2006, 16h35
  3. [PHP-JS] Fonction pause en php
    Par cokilulu dans le forum Langage
    Réponses: 5
    Dernier message: 14/06/2006, 11h11
  4. [PHP-JS] pb de variable php dans fonction Js
    Par logone dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2006, 23h20
  5. [PHP-JS] pb lecture script php dans une fonction au démarrage
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/02/2005, 15h07

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