Salut,

Je souhaite couper des chaines trop longues pour ne pas perturber la mise en page. Sur un topic précédent, j'ai lu ça:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?php 
$texte = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; 
$longueur = 10; 
$caractere = ' '; // Ce que tu utilises pour séparer le mot 
$texte = preg_replace('`([[:alnum:][:punct:]]{'.$longueur.'})`smU','$1'.$caractere,$texte); 
echo $texte; 
?>
Ce qui fonctionne très bien avec un texte normal. Mais avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$texte = "<a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a>
<a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a><a href='#'>Lien</a>";
ça ne fonctionne plus les chaines sont coupés dans le code html... Comment prendre en compte les codes html?
Idem avec le code que j'ai fais:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
$mots = explode(' ', $texte); 
for($i=0;$i<count($mots);$i++) { 
   if (strlen($mots[$i]) > 49) { 
      $start_mot = substr($mot[$i], 0, 49); 
      $end_mot = substr($mot[$i], 49, strlen($mots[$i])); 
      $new_mot = $start_mot.' '.$end_mot; 
      $texte = str_replace($mots[$i], $new_mot, $texte); 
   } 
}
Merci