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 :

Mettre un mot à une position dans un texte


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Mettre un mot à une position dans un texte
    Bonsoir,

    Comment mettre un mot dans un champ à une position donnée.

    Je veux mettre en position 30 le mot "coucou".

    Merci d'avance.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  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
    Tu peux utiliser substr() pour avoir le bout avant et le bout apres puis rassembler les 3 morceaux.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    sinon tu as substr_replace() qui fera cela très bien.
    Pourfendeur de singletons en croisade

  4. #4
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Merci,

    J'opte pour substr_replace et je fais donc

    Sachant que j'ai 2 tableaux, un pour les mots, l'autre pour les longueurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $tableau_mots = ("OPERATION RENTREES", "OPR");
    $tableau_longueurs = (21, 3);
    J'ai fait le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $libelle = "";
    $i = 0;
    $j = 0;
    foreach($textes as $texte)
    {
    $libelle = substr_replace($libelle, $tableau_mot[$j], $i, $tableau_longueurs[$j]);
    $i = $i + $tableau_longueurs[$j];
    $j++; 
    }
    Je me retrouve avec :

    et non

    Pourquoi pour le 2ème mot, il ne tient pas compte de la longueur du 1er texte.

    Est-ce les espace qu'il n'aime pas ?
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Quels espaces ? je ne vois pas d'espaces dans les mots du tableau $tableaux_mots... Peut-être devrais-tu les ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau_mots = ("OPERATION RENTREES ", "OPR ");
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  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
    substr_replace() ne bourre pas avec des espaces si tu cherches a ecrire plus loin que la taille de la chaine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $tableau_mots = array("OPERATION RENTREES", "OPR");
    $tableau_longueurs = array(21, 3);
    $libelle = "";
    foreach($tableau_mots as $id=>$mot) {
    $libelle .= sprintf("%-" . $tableau_longueurs[$id] . "s",$mot);
    }
    echo $libelle;
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Citation Envoyé par sabotage Voir le message
    substr_replace() ne bourre pas avec des espaces si tu cherches a ecrire plus loin que la taille de la chaine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $tableau_mots = array("OPERATION RENTREES", "OPR");
    $tableau_longueurs = array(21, 3);
    $libelle = "";
    foreach($tableau_mots as $id=>$mot) {
    $libelle .= sprintf("%-" . $tableau_longueurs[$id] . "s",$mot);
    }
    echo $libelle;
    ?>
    Merci c'est exactement ça et ça fonctionne.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/07/2015, 22h46
  2. Réponses: 8
    Dernier message: 09/04/2013, 04h50
  3. Mettre une Image dans un Text() sous Python 3
    Par sancho.poncho dans le forum Tkinter
    Réponses: 6
    Dernier message: 07/07/2012, 11h41
  4. Mettre des mots en surbrillance dans un texte
    Par Moloc'h dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 0
    Dernier message: 14/02/2011, 19h03
  5. Comment mettre une variable dans du texte?
    Par Xanto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/12/2007, 13h50

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