Affichage sur lignes separée PHP

Résolu
Bonjour a tous,
j'ai du soucis avec php MDR
je suis tout nouveau et très novice dans php et j'aimerait pas que $val affiche pas tous les mots mais par ligne ex:
les résultat de $val:

$val[1] = text1 $val[2] = text2 .... $val[5] = text5

et a chaque nouvelle ligne $texte .='%le mot 1%... ';

qu'il se répète

il y a un moyen ?

merci in finiment a vous tous

<?php  
 //--- texte ---//   
$texte = "%text1% %text2% %text3% %text4% %text5%";   
$texte .= "%text1-a% %text2-a% %text3-a% %text4-a% %text5-a%";   

//--- la regex ---//   
preg_match_all( "/%(.*)%/Us" , $texte, $mots);   

foreach($mots[1] as $val) {  
echo "$val <br />";  
?>  

3 réponses

  1. Contributeur
    Bonjour,
    Je n'ai rien compris à ce que tu voulais faire. Tu peux nous donner un exemple ?
    1. Bonjour et merci de m'aider,
      je me doutait pas facile
      bon. ex :
      dans
      $texte = '%Texte-1% %Texte-2% ...etc';
      et
      $texte .='%Texte-1-a% %Texte-2-a%';

      je voudrait qu'il se complète dans une phrase ex

      voici ma frase ici Texte-1 et ici Texte-2 fin de phrase.
      voici ma frase ici Texte-1-a et ici Texte-2-a fin de phrase.

      et ainsi de suite tant que il y a des $texte .'%Text-1-b% etc';
  2. Contributeur
    Je crois avoir compris... Et donc, avec ton code, ça ne marche pas ? Tu as un message d'erreur ? Ou il ne t'affiche pas ce que tu veux ?
    1. Bonjour !!!!!
      merci de ta réponse
      le code que je mis, marche mais sa met tout sur 1 seule ligne a la suite
      moi j'aimerai que il soit sur plusieurs lignes
      ex:

      $texte = '%Texte-1% %Texte-2% ...etc';
      $texte .='%Texte-1-a% %Texte-2-a%';
      $texte .='%Texte-1-b% %Texte-2-b%';

      voici ma frase ici Texte-1 et ici Texte-2 fin de phrase.
      voici ma frase ici Texte-1-a et ici Texte-2-a fin de phrase.
      voici ma frase ici Texte-1-b et ici Texte-2-b fin de phrase.

      etc voila :-)
      1. Contributeur
        Ah oui, d'accord, il va falloir utiliser le modulo. (tous les X fois, on va faire une action différente, dans ton cas, aller à la ligne).
        Tu as bien le même nombre de Test-X / Texte-X-a / Texte-X-b ?
      2. Bonjour,
        encore merci de ton aide.
        oui pour les Test-X Test-x-a est le meme nombre il y a 4 a chaque fois
      3. Bonsoir,
        Merci.! !!!!

        en cherchant un peu ce que tu mas dit la plus haut j'ai trouvé.

        <?php    
         //--- texte ---//     
        $texte = "%text1% %text2% %text3% %text4% %text5%";     
        $texte .= "%text1-a% %text2-a% %text3-a% %text4-a% %text5-a%";     
        
        //--- la regex ---//    
        $i = 0;  
        preg_match_all( "/%(.*)%/Us" , $texte, $mots);     
        
        foreach($mots[1] as $val) {     
        ++$i;  
        echo "$val ";  
        if(!($i%5))  
        echo '<br/>';  
        }  
        ?>    
        

        WOOOW
        merci beaucoup! sa fonctionne impeccable ah que je suis content
        Meilleures salutations
      4. Contributeur
        Cool !
        Moi aussi, je suis content =)
      5. Bonsoir,
        ok cela fonctionne mais pas completement comme je le voudrait
        dans:
        $texte = "%text1% %text2% %text3% %text4% %text5%";
        $texte .= "%text1-a% %text2-a% %text3-a% %text4-a% %text5-a%";
        le resultat est bien
        text1 text2 text3 text4 text5
        text1-a text2-a text3-a text4-a text5-a

        moi je voudrait que soit placée :
        voici ma frase ici texte1 et ici texte2 et ici texte3 et ici texte4 et ici texte5 fin de phrase.
        voici ma frase ici texte1-a et ici texte2-a et ici texte3-a et ici texte4-a et ici texte5-a fin de phrase.
        voila
        me reste encore comment faire.
        mais ce deja un bon pas :-)