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 :

Fonction substr ou mb_substr


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Fonction substr ou mb_substr
    Bonjour,
    J'ai besoins de vos lumière.
    Voila j'ai un fichier ou je dois extrait un segment de string donc j'utiliser substr au départ mais voila la chaine ne subit aucune modification alors que si jamais je me la chaine manuellement sa marche parfaitement.
    Je pense mais je suis pas sur que cela pourrait venir de l'encodage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $serialrow = explode(";",$rows[2]); 
    $serialdigit = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $serialrow[0]);
    $year = mb_substr($serialdigit, 0, -6,'UTF8');
    $month = mb_substr($serialdigit, 4, -4,'UTF8');
    $day=  mb_substr($serialdigit, 6, -2,'UTF8');
    $digit = mb_substr($serialdigit, 8,2,'UTF8');
    Si je met serialdigit une valeur en dur sa marche parfaitement.
    Voila la valeur que j'essaye de découper "2014072103" je l'obtient après le explode.
    Merci d'avance pour votre aide


    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi fais-tu une conversion d'encodage ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Salut,
    Je sait plus trop en fait j'ai essayer de voir si sa viendrait pas d'un problème d'encodage car je voit pas pourquoi il veut pas découper une partie de ma chaine lorsqu'elle provient d'un tableau mais lorsque je lui met une chaine en dur cela marche parfaitement

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu decoupes tes nombres, l'encodage ne joue pas.

    Tu pourrais être plus précis sur d'ou viennent tes données, ce que tu fais et ce que tu obtiens ?

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    D’où viennent mes données : d'un fichier .conf
    Ce que j'essaye de faire : j'essaye d'extraire une ligne de ce fichier (sa c bon),de séparer le commentaire de la partie qui m’intéresse (sa c fait) et pour finir j'essaye de découper ce nombre afin d'obtenir une date et de séparer les deux derniers digits.
    Ce que j'obtient : la chaîne en entier (si j’insère cette même chaîne manuellement dans mon code sa marche parfaitement)

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    tu peux nous fournir le fichier et ton code ?

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Voila le fichier (enfin le sample utile)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $TTL 1D
    @       IN      SOA     REDACTED(
                           2014072103       ;serial //voila la ligne que je récupere
                            1D      ;refresh
                            3H      ;retry
                            1W      ;expire
                            1H      ;TTL negative
                            )
    ;
            IN      NS      REDACTED
            IN      NS      REDACTED
            IN      NS      REDACTED
    Et voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $txt_file    = file_get_contents($file);
    $rows        = explode("\n", $txt_file);
    $serialrow = explode(";",$rows[2]); 
    $serialdigit =((string) $serialrow[0]);
    $year = mb_substr($serialdigit, 0, -6,'UTF8');
    $month = mb_substr($serialdigit, 4, -4,'UTF8');
    $day=  mb_substr($serialdigit, 6, -2,'UTF8');
    $digit = mb_substr($serialdigit, 8,2,'UTF8');

Discussions similaires

  1. [Dates] "concaténation" de fonction substr et autres
    Par javaboy dans le forum Langage
    Réponses: 12
    Dernier message: 12/04/2007, 11h51
  2. Limite de la fonction substr
    Par zimotep dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2006, 02h45
  3. [XSL]appliquer la fonction substring sur une valeur récupéré
    Par totoranky dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 22/02/2006, 18h21
  4. Doublons et fonction substring-before
    Par dalefou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 30/09/2005, 15h12
  5. Réponses: 5
    Dernier message: 13/07/2005, 11h03

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