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 992

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
 

Commentaires et avis

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



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,608 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.