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 :

Savoir la fin d'une chaine de caratères


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Savoir la fin d'une chaine de caratères
    Bonjour,

    J'ai un petit soucis à régler dans mon fichier php.
    Alors, j'ouvre un fichier, je met tous le contenu dans une variable. Puis j'explose cette variable par chaque ";".
    Car chaque ligne termine par un point ; .

    Mais moi j'aimerai faire en sorte que si une ligne mesure plus de 36 caractères, je fais un retour chariot.

    J'ai ça comme code pour l'instant, mais ça n'a pas l'air de marcher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      $tabfich = explode(';',$recuperation);
          foreach($tabfich as $ligne)
          {
            if (strlen(trim($ligne))>36)  {
             $recuperation .= "\n";
            }
     
          }
    si quelqu'un a une solution ?

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    il te faut une sorte de chunk_split() en fait.

  3. #3
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $temp = explode(';',$recuperation);
    $text_final="";
    foreach($temp as $ligne)
    {
      if (strlen(trim($ligne))>36)  {
        $parties=coupe_texte(36);//c'est plus simple si tu fais une fonction qui te coupe ton texte au Nieme carractere et qui return un tableau de 2 (partie avant et apres la coupure)
        $text_final.= $parties[0]."\n".$parties[1];//tu peux essayer avec <br /> (ca depend de l'utilisation que t'en fais apres)
      } else {
        $text_final.=$ligne;
      }
    }
    j'ai fais ca a la volee.. j'ai pas tester, mais c'est l'algo que j'aurai utilise

  4. #4
    Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 26
    Points : 51
    Points
    51
    Par défaut
    Sinon tu peux aussi utiliser la fonction substr_replace qui permet de remplacer un morceau de chaine par un autre: il suffit de lui dire que le morceau à remplacer commence à la place 36 et à une longueur de 0...il devrai donc te rajouter ton passage à la ligne, ca donnerai quelque chose du genre:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach($tabfich as $key => $ligne)
          {
            if (strlen(trim($ligne))>36)  {
             $tabfich[$key] = substr_replace($ligne, '\n', 36, 0);
            }
     
          }

    par contre méfies toi si la ligne fais plus de 36 caractère ça passera une fois à la ligne, mais si elle fait plus de 72 caractères elle ne rajoutera qu'un seul passage à la ligne (tu auras donc une première ligne de 36 et une seconde qui peut être très longue).

Discussions similaires

  1. [regexp] supprimer la fin d'une chaine
    Par novices dans le forum Langage
    Réponses: 3
    Dernier message: 22/08/2006, 23h23
  2. Comment trouver la fin d'une chaine ?
    Par beloc dans le forum Linux
    Réponses: 2
    Dernier message: 02/06/2006, 15h36
  3. [Tableaux] Décomposer une chaine de caratères
    Par bianconeri dans le forum Langage
    Réponses: 8
    Dernier message: 06/03/2006, 16h43
  4. [langage] supprimer le "/" à la fin d'une chaîne
    Par sommerset dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2005, 15h41
  5. Réponses: 1
    Dernier message: 08/03/2004, 12h35

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