begin process at 2008 05 16 04:28:11
1 173 209 membres
51 nouveaux aujourd'hui
13 970 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EVITER LA DEFORMATION D'UN TABLEAU


Information sur la source

Catégorie :Chaîne de caratère Niveau : Débutant Date de création : 09/08/2003 Date de mise à jour : 09/08/2003 21:08:56 Vu : 3 096

Note :
Aucune note

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note


Description

Je poste cette source car celle de eax comporte des erreurs et ne respecte pas la mise en forme du texte.

Cette source empeche de déformer le texte si un mot est par exemple comme ça :

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(si rien ne vous choque c'est que nix a corrigé l'erreur lol)

Donc ma source analyse chaque mot, et si il est trop long le coupe (si le mot coupé est trop long alors il est recoupé et rerererecoupé si besoin est)

Source

  • function anti_deforme($texte,$limit)
  • {
  • $le_texte = explode(" ", $texte);
  • $the_text = "";
  • for($compt = 0 ; $compt<=count($le_texte) ; $compt++)
  • {
  • if (strlen($le_texte[$compt]) > $limit)
  • {
  • $le_mot = substr($le_texte[$compt],0,$limit);
  • $le_mot_2 = substr($le_texte[$compt],$limit+1);
  • $the_texte .= " ".$le_mot;
  • if (strlen($le_mot_2) > $limit)
  • {
  • while (strlen($le_mot_2) > $limit)
  • {
  • $le_mot_2_coupe = substr($le_mot_2,0,$limit);
  • $le_mot_2 = substr($le_mot_2,$limit);
  • $the_texte .= " ".$le_mot_2_coupe;
  • if (strlen($le_mot_2) < $limit)
  • {
  • $the_texte .= " ".$le_mot_2;
  • }
  • }
  • }
  • else
  • {
  • $the_texte .= " ".$le_mot_2;
  • }
  • }
  • else
  • {
  • $the_texte .= " ".$le_texte[$compt];
  • }
  • }
  • return nl2br($the_texte);
  • }
  • Vous pouvez aussi ajouter cette css dans le tableau pour empecher la déformation du tableau au cas ou
  • .tab{
  • word-wrap : break-word;
  • word-break : break-all;
  • }
function anti_deforme($texte,$limit)
{
	$le_texte = explode(" ", $texte);
	$the_text = "";

		for($compt = 0 ; $compt<=count($le_texte) ; $compt++)
		{
			if (strlen($le_texte[$compt]) > $limit)
			{
				$le_mot = substr($le_texte[$compt],0,$limit);
				$le_mot_2 = substr($le_texte[$compt],$limit+1);
				
				$the_texte .= " ".$le_mot;
				
				if (strlen($le_mot_2) > $limit)
				{
					while (strlen($le_mot_2) > $limit)
					{
						$le_mot_2_coupe = substr($le_mot_2,0,$limit);
						$le_mot_2 = substr($le_mot_2,$limit);
						$the_texte .= " ".$le_mot_2_coupe;
						
						if (strlen($le_mot_2) < $limit)
						{
							$the_texte .= " ".$le_mot_2;
						}
					}
				}
				else
				{
					$the_texte .= " ".$le_mot_2;
				}
			}
			else
			{
				$the_texte .= " ".$le_texte[$compt];
			}
		}
	return nl2br($the_texte);
} 


Vous pouvez aussi ajouter cette css dans le tableau pour empecher la déformation du tableau au cas ou

.tab{
	word-wrap : break-word;
	word-break : break-all;
}

Conclusion

Utilisation : anti_deforme($ligne-&gt;news,35);

J'espere que ça vexera pas eax que je mette cette source juste aprés la sienne, c t pas le but lol

Source testé et qui marche.

Bon coding :D
  • signaler à un administrateur
    Commentaire de matrey le 09/08/2003 22:31:24

    et pkoi pas utiliser tt simplement la fonction de PHP :

    wordwrap()

  • signaler à un administrateur
    Commentaire de eax le 09/08/2003 23:40:41

    moi vexé ? lol jsuis plutot content que tu m'aides à corriger mes erreurs :)
    au fait c quoi mes erreurs lol?
    g compris comment fonctionne ton code mais je comprends pas ce que tu entends par mise en forme du texte

  • signaler à un administrateur
    Commentaire de Tortuegeniale le 10/08/2003 01:11:25

    matrey&gt; bah moi perso c parceque worwarp j'aime pas sa mise en forme, il trouve 75 caracteres et hop il va en dessous, alors que ma fonction elle ne va pas pas a la ligne, elle ajout juste un espace. Je trouve que ça fais des espaces vide en moins dans les gros textes lol. J'ai testé les 2 et la mise ne page de mon script je prefere, question de gout lol

    Oui on appele ça réinventer la roue lol

    Eax&gt; je poste les erreurs sur ta source.

    tain l'est loin le bouton pour poster lol

  • signaler à un administrateur
    Commentaire de Jackboy le 10/08/2003 05:16:58

    ouin ben nix trouve un exemple semblable en aspx, car ici le besoin est !!!! héhé

  • signaler à un administrateur
    Commentaire de iubito le 16/08/2003 11:29:21

    le truc il faut pas que ça compte les & e a c u t e ; comme 7 caractères mais un seul, et aussi ne pas couper les url !!!!
    et wordwrap de PHP coupe les url, voir ici pour quelque fonctions écrites par des utilisateurs ;) rien testé mais à voir quand même

    http://fr.php.net/word_wrap

  • signaler à un administrateur
    Commentaire de Tortuegeniale le 17/08/2003 12:08:55

    ma fonction coupe le texte brute, pas un texte html donc a se niveau la ça va, je regarderai pour les url quand j'aurai le temps, c pas con ça j'a v oublié ;) merci de l'idée lol

  • signaler à un administrateur
    Commentaire de Urukai1 le 18/08/2003 13:29:32

    salut
    ya un toute petite rreur dans ton  code
    lorsque tu coupes avec
    "$le_mot = substr($le_texte[$compt],0,$limit);
                    $le_mot_2 = substr($le_texte[$compt],$limit+1);"

    la deuxieme partie du mot est tronqué du premier carcatere
    exemple : bonjour devient bon our au lieu de bon jour

    il faut virer $limit+1 et remplacer par $limit
    il faut simplement mettre
    "$le_mot = substr($le_texte[$compt],0,$limit);
                    $le_mot_2 = substr($le_texte[$compt],$limit);"

    merci pour ce code

  • signaler à un administrateur
    Commentaire de Tortuegeniale le 20/08/2003 14:38:11

    En effet j'avais pas vu, merci de l'info :)

    Je viens de tester : Si vous oublier d'entrer une limite, le script boucle infiniment et surchauffe apache lol(95 à 99 % de cpu utilisé) donc pas de bétise lol

  • signaler à un administrateur
    Commentaire de madvic le 01/12/2003 23:26:44

    Y'aurais pas une fonction qui limite en largeur et en hauteur ?

  • signaler à un administrateur
    Commentaire de iubito le 02/12/2003 05:53:47

    bein là tu limites le nb de caractères à entrer

  • signaler à un administrateur
    Commentaire de eax le 03/02/2006 10:10:07

    salut tortuegeniale
    tain ça fait un bail que gt pas venu sur ce site,
    aurais-tu une fonction similaire qui gère les balises et caractères spéciaux (pour pas les couper sinon c pas beau ;) ?

  • signaler à un administrateur
    Commentaire de iubito le 03/02/2006 11:30:30

    regarde sur http://fr.php.net/word_wrap les codes en bas :)

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS