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 :

Conversion d'une chaine en octal inopinée


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 22
    Par défaut Conversion d'une chaine en octal inopinée
    Bonjour,

    J'ai un petit problème dans une page php, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $chaine = "0112";
    $chaine2 = "abc" . $chaine;
     
    echo $chaine2; // Affiche: abc72 !!
    PHP m'affiche abc72 au lieu de abc0112 alors que je ne demande pas qu'il convertisse $chaine de l'octal vers le décimal.

    Vous avez une solution sachant que je ne peux pas prévoir à l'avance ce qu'il y aura dans $chaine ?

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Tu dois avoir une autre fonction d'activée, car il affiche bien 0112 avec ton code...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 22
    Par défaut
    Ah, quelle buse, je teste même pas mon code exemple
    Et ça affiche 74 et non 72...

    Le code ressemble en fait à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $chaine = preg_replace("#ab(.*)z\.zip#sie", '\\1', "ab0112z.zip");
    $chaine2 = "abc" . $chaine;
    echo $chaine2; // Affiche: abc74 !!

  4. #4
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    C'est le fait d'avoir 0 en premier qui le bascule en mode octale.
    Un début de réponse peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $file = '01234.zip';
    $chaine = preg_replace('#(.*).zip#sie', 'decoct(${1}1)', $file);
    echo $chaine; // 12341
    Mais à la sortie le 0 dégage...

    Ma question que cherches-tu à obtenir comme nom de fichier ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 22
    Par défaut
    Oui c'est bien le 0 qui le bascule en mode octal.

    Sinon, comme tu l'as compris, le script va lister des fichiers à partir d'un répertoire. Je sais que ces fichiers sont sous la forme : abXXXXz.zip
    Je veux récupérer XXXX (la longueur n'est pas définie)

    Les X peuvent êtres des chiffres ou des lettres.

    Quand il y a des lettres, pas de problème. PHP sait que ce'est une chaine et je récupère celle-ci comme il faut ! Par contre, si c'est un nombre qui commence par un 0, alors là je suis embêté car il me sort la convertion décimale de ce qu'il croit être un octal.

  6. #6
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Oui mais tu veux juste récupérer le nom du fichier ou le modifier, parce que tu fais un preg_replace là...

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

Discussions similaires

  1. [VBA Excel] conversion d'une chaine en numérique
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/12/2005, 17h56
  2. [VBA][EXCEL]Conversion d'une chaine en single
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/11/2005, 17h28
  3. conversion d'une chaine de caractère en int
    Par greg13 dans le forum C++
    Réponses: 3
    Dernier message: 25/08/2005, 16h18
  4. [string->HTML] Conversion d'une chaine en HTML
    Par salome dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 24/07/2005, 16h27
  5. Conversion d'une chaine de char en numerique
    Par simone.51 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 25/03/2004, 16h47

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