1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| <?php
$gat="Mettre ici le texte à analyser";
$max_letters = 11; //Le nombre maximum de caractères
//Les tableaux de lettre en fonction de la largeur des lettres :
$gl_1 = array("i","j","l","'");
$gl_2 = array("r","f","t","I"," ");
$gl_3 = array("a","b","c","d","e","g","h","k","n","o","p","q","s","u","v","x","y","z","J","L");
$gl_4 = array("m","w","A","B","C","D","E","F","G","H","K","M","N","O","P","Q","R","S","T","U","V","X","Y","Z");
$gl_5 = array("W");
//La largeur des lettres selon le tableau dans lequel elles figurent
$width_1 = 0.7;
$width_2 = 0.9;
$width_3 = 1.3;
$width_4 = 1.8;
$width_5 = 2;
$width_other = 1;
$strlen_gat=strlen($gat); //Nombre total de letttre que contient le texte
//Initialisation
$Total_width = 0;
$stop_letters = 0;
$break_for=0;
//Boucle for de traitement de chaque lettre du texte :
for($i=0;$i<=$strlen_gat;$i++)
{
if ($break_for==0) /*Ne plus analyser si taille déjà dépassée*/
{
//Déterminer de quel tableau dépend la lettre et ajouter sa largeur :
$get_letter = $gat[$i];
if(in_array($get_letter, $gl_1))
{
$Total_width = $Total_width + $width_1;
}
elseif(in_array($get_letter, $gl_2))
{
$Total_width = $Total_width + $width_2;
}
elseif(in_array($get_letter, $gl_3))
{
$Total_width = $Total_width + $width_3;
}
elseif(in_array($get_letter, $gl_4))
{
$Total_width = $Total_width + $width_4;
}
elseif(in_array($get_letter, $gl_5))
{
$Total_width = $Total_width + $width_5;
}
else
{
$Total_width = $Total_width + $width_other;
}
$stop_letters++; //Détermination de la lettre où s'effectuera le tronquage
if ($Total_width>$max_letters){$break_for=1;}
}
}
//Tronquer si nécessaire
if ($Total_width > $max_letters)
{
$gat = substr($gat, 0, $stop_letters)." ...";
}
//Ecriture du texte entier ou tronqué dans la DIV
echo '<div class="c"><h4 class="box title">'.$gat.'</h4></div>';
?> |
Partager