Soyez le premier à donner votre avis sur cette source.
Snippet vu 4 552 fois - Téléchargée 30 fois
<? function format_chaine($chaine,$longueur){ $chaine=trim($chaine); //vire les espaces en début et fin de chaine $chaine=strtr($chaine,array_flip(get_html_translation_table(HTML_ENTITIES))); //vire les cars html qui vont perturber le comptage des lettres $mots=explode(' ',$chaine); //sépare tous les mots $nb_mots=count($mots); //compte le nb de mots $pos=0; for($i=0;$i<=$nb_mots-1;$i++){ if(strlen($mots[$i])>$longueur){ //si le mot rentre pas sur une seule ligne $debut=0; if($longueur-strlen($ligne[$pos])>=$longueur/3){ //si il reste plus d'un tiers de la ligne dispo $debut=$longueur-strlen($ligne[$pos]); $ligne[$pos].=substr($mots[$i],0,$debut); // on place sur cette ligne le début du mot } $nb_lignes=ceil((strlen($mots[$i])-$debut)/($longueur-1)); //nb de lignes nécessaires pr ce mot for($j=0;$j<=$nb_lignes;$j++){ $ligne[$pos].=substr($mots[$i],$debut,$longueur); //on découpe ce mot sur le nb de lignes nécessaires $debut+=$longueur; } }else{ //si le mot rentre sur une ligne if(strlen($ligne[$pos])+strlen($mots[$i])<=$longueur){ //y'a encore de la place sur cette ligne? $ligne[$pos].=$mots[$i].' '; //oui: on y ajoute le mot }else{ //non: on ajoute le mot sur une autre ligne $pos++; $ligne[$pos].=$mots[$i].' '; } } } for($i=0;$i<=count($ligne)-1;$i++){ //on remet les caractères html $ligne[$i]=htmlentities($ligne[$i]); } $resultat=implode("<br>\n",$ligne); //on crée une chaine toute propre return $resultat; } ?>
9 août 2003 à 17:42
Sinon au niveau utilité y a beaucoup plus simple :
Sur le formulaire ou l'utilisateur rentre son nom ou son email, il suffit de définir le nombre de caractères maximal à 20 par exemple dans le champ de saisi (propriété maxlength en html).
9 août 2003 à 17:46
9 août 2003 à 18:39
Dans ces cas la il suffit de faire sur la page de réception en php, avant l'insertion, que si le nombre de caractère de la variable "nom" est plus grand que 30 par exemple, ben annuler l'insertion.
Ceci évite les gros lourds comme le dis Eax et les empêche de pourrir la base.
Enfin bon... ca dépend si on veut des lourds ou pas sur son site :)
9 août 2003 à 19:01
function coupemot($m, $l) {
for ($i=0; $i<20; $i+=$l) $r.=substr($m, $i, $l)." ";
return $r;
}
function format_chaine($c,$l) {
return preg_replace("/([^ ]{" . $l . ",})/Ue", "coupemot('\1', $l)", $c);
}
9 août 2003 à 19:50
Eax> j'ai fais une source je la poste la, parceque ta source comporte des erreurs (par exemple ça respect pas la mise ne forme)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.