Salut hpsam,
Merci pour ta réponse. Je n'arrive pas à passer un 4.6: j'ai trop de travail pour re-bricoler toutes mes modifications sur la 4.5.

J'ai réussi à faire un code un peu bancal qui coupe le texte lorsqu'il rencontre le <.hr> Je vais essayer de faire que ce code coupe le texte avec des nombres de caractères proportionnels au nombre de <.hr> mais pour l'instant ça ne fonctionne pas.
Voici le code, ça peut servir. Il faut enlever les . derrière les < (pour que le postguest n'enlève pas les balises) et c'est vers la ligne 295 mais j'ai tellement rajouté de lignes que je ne sais pas exactement où ça se trouve sur le fichier original mais c'est après:
ReadDoc(DBBASE.$dbwork_agenda[$i][4]);
if($status=="a"){
Voici le code pour la 1ère langue:
$fieldc1 = str_replace("<.br />"," - ",$fieldc1);//modif remplace saut de ligne agenda
//modif coupe si plusieurs <.hr>
$fieldc1 = strip_tags($fieldc1,'<.hr>');
if (preg_match("/\b^(.*)<.hr\b/i", $fieldc1)) {//enlever aussi le point devant hr
$ni=0;
$long=30;
$tableau1 = strip_tags($tableau1,'<.hr>');
$tableau1 = explode('<.hr>',$fieldc1);
while($tableau1[$ni] != '')
{
$tableau1[$ni] = substr($tableau1[$ni],0,$long);
$ni++;
}
$fieldc1 =implode(' | ',$tableau1);// insère le caractère de séparation
}
else{
$fieldc1 = $fieldc1;
}
Voilà, si ça peut servir à quelqu'un...

Dès que j'arrive à spliter avec des longueurs proportionnelles, je met la modification ici.
Merci a+