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

JavaScript Discussion :

[PHP-JS] convertir un bout javascript en php ?


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Inscrit en
    Avril 2005
    Messages
    300
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par d�faut [PHP-JS] convertir un bout javascript en php ?
    Bonjour,

    est-ce que quelqu'un est capable de retranscrire cela en PHP ?:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    function hexToBin (s) {
      r = "";
    //  s = s.substring(2);
      var hexas = "0123456789abcdef";
      var i = 0;
      while (i<s.length) { r += String.fromCharCode((hexas.indexOf(s.charAt(i)) << 4) | hexas.indexOf(s.charAt(i+1))); i+=2;}
      return r;
    }
    Si une personne y arrive je lui en serai eternellement reconnaissant !

  2. #2
    Membre �m�rite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par d�faut
    Ce code semble transformer une chaine de caract�res hexad�cimaux en donn�es binaires.
    En JavaScript y'avait plus simple pour faire �a.

    En php �a donnerait :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function hexToBin ($str) {
      $bin = '';
      $len = strlen($str);
      // Si la taille de $str est impaire, il y a une eurreur
      if ($len & 1) return false;
      // Si $str contient autre chose que c'est caractères hexadécimaux -> erreur
      if (!preg_match('/^[0-9a-zA-Z]+$/', $str)) return false;
     
      for ($i=0; $i<$len; $i++) {
        $bin .= chr(hexdec(substr($str, $i, 2)));
      }
      return $bin;
    }
    Ceci dit il aurait peut-�tre �t� plus judicieux de demander sur le forum php. Car ta question demande de savoir coder en php, et simplement de comprendre le javascript.

  3. #3
    Membre �clair�
    Inscrit en
    Avril 2005
    Messages
    300
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par d�faut
    Oui certe mais personne ne m'a r�pondu..ou en tout cas pas aussi bien et vite que toi ! je vais tester ceci de ce pas !
    COmment aurais tu fais en javascript ?

  4. #4
    Membre �clair�
    Inscrit en
    Avril 2005
    Messages
    300
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par d�faut
    Ca ne fonction pas !

    J'ai ca en php pour faire l'inverse qui fonctionne:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    function stringToHex ($s)
    {
      $r = "0x";
      $hexes = array ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
      for ($i=0; $i<strlen($s); $i++) {$r .= ($hexes [(ord($s{$i}) >> 4)] . $hexes [(ord($s{$i}) & 0xf)]);}
      return $r;
    }
    et de toi:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function stringToBin ($s) {
      $bin = '';
      $len = strlen($s);
      // Si la taille de $str est impaire, il y a une eurreur
      if ($len & 1) return false;
     
      for ($i=0; $i<$len; $i++) {
        $bin .= chr(hexdec(substr($s, $i, 2)));
      }
      return $bin;
    }
    J'ai donc fais le test suivant:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    echo 'stringToHex:  '.stringToHex('test').'<br />';
    echo 'stringToBin:  '.stringToBin(stringToHex('test')).'<br />';
    Et j'obtiens le resultat suivant:

    stringToHex: 0x74657374
    stringToBin: tFeWs7t

    On remarque: t e s t

  5. #5
    Membre �m�rite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par d�faut
    Oui en effet c'ets une erreur toute b�te, il faut remplacer $i++ par $i+=2 dans la boucle for.

    Sinon, en JavaScript j'aurais fait comme �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    hexToBin (str) {
      bin = "";
      if (str.len & 1) return false;
      if (!str.match(/^[0-9a-zA-Z]+$/)) return false;
      for (i=0; i<str.len; i+=2) {
        bin += String.fromCharCode(parseInt(str.substr(i, 2), 16));
      }
      return bin; 
    }
    En gros la m�me chose qu'en php.

    Quant-� ton binToString, je l'aurais fait comme �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    function binToString($bin) {
      $str = '0x';
      $len = strlen($bin);
      for ($i=0; i<$len; $i++) {
        $str .= dechex(ord($bin{$i}));
      }
      return $str;
    }
    C'est plus court, mais apr�s, � savoir si c'est plus rapide...

  6. #6
    Membre �clair�
    Inscrit en
    Avril 2005
    Messages
    300
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par d�faut
    Merci bcp � toi ! c'est vraiment encourageant d'avoir de l'aide ainsi !!!

    Merci.

    EDIT: je testerai et te tiendrais au courant ici.

  7. #7
    Membre �clair�
    Inscrit en
    Avril 2005
    Messages
    300
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par d�faut
    J'ai tester cela fonctionne.
    Mais j'ai tout de meme un soucis.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    echo stringToBin(0x4ef9f48713388c59);
    // retourne: Nùô‡8ŒY
    Donc � premi�re vu c'est bon ! Mais lorsque je regarde mon code source j'ai ceci:

    Soit un petit carr� entre � et 8, et je voudrais r�cup' le petit carr� avec ! As-tu une id�e ?

  8. #8
    Membre �m�rite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par d�faut
    Tu veux dire que tu veux le r�cup�rer dans une variable javascript ?
    Si c'est le cas, alors tu aura du mal avec la forme binaire, car il s'agit d'un caract�re de retour de chariot ; et celui-ci sera s�rement interpr�t� par javascript comme une nouvelle ligne, et provoquera une parse error.

Discussions similaires

  1. [PHP-JS] Convertir une variable javascript en php
    Par roxxxy dans le forum Langage
    R�ponses: 14
    Dernier message: 01/03/2007, 12h12
  2. [PHP-JS] Probleme de popup javascript en php avec dreamweaver
    Par wadali_2000 dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 13/07/2006, 20h00
  3. [PHP-JS] Faire un appel JavaScript depuis PHP
    Par davinout dans le forum Langage
    R�ponses: 4
    Dernier message: 29/05/2006, 20h03
  4. [PHP-JS] Transmettre une variable javascript vers php
    Par phpaide dans le forum G�n�ral JavaScript
    R�ponses: 11
    Dernier message: 20/05/2006, 08h30
  5. [PHP-JS] recuperation de variable javascript avec php
    Par dipajero dans le forum Langage
    R�ponses: 3
    Dernier message: 21/03/2006, 20h39

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