|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 22 ![]() |
bonsoir a tous
voila......... j'ai sur mon formulaire des textarea. mon pb est que quand je rentre des phrases du type 'ooioioiioioioiioioi jkljkjkjkjkjkjkjkjjk ljjkjkjkjkjkjkjkjkjkj" et que j'insere cela dans une bdd mysql, les lignes blanches prennent de la place dans la bdd pour pas grand chose. ps : pour info : ma méthode de stockage dans ma bdd mysql pour tout type de champ consiste à : - tester le magic quotes gpc et enlever les / si le magic quotes est a oui - supprimer les eventuelles balises html (stiptags de memoire) - supprimer les blans avant et aprés (trim php). comment dois-je m'y prendre pour optimiser l'espace dans la zone mysql sachant qu'un principe de base que j'ai adopté est que je ne veux aucun caractère html du style <br> ou autre dans ma bdd mysql (principe de base classique car une bdd ne doit pas contenir de données spécifiques à un langage ou un type d'affichage). merci |
|
|
00
|
|
|
#2 | ||
|
Membre éprouvé
![]() Inscription : novembre 2007 Messages : 453 ![]() |
Bonsoir,
Par quoi voulez-vous remplacer les sauts de ligne ? C'est faisable en javascript... Par exemple, un truc du genre un Code :
onsubmit="changeSautLignes(document.monform.montextarea,document.form.monveritabletextarea)"
et un input type hidden de nom "monveritabletextarea"... Si vous voulez changer les sauts de ligne par un espace, il suffit de faire : Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Inscription : mars 2006 Messages : 318 ![]() |
quel intérêt ? un saut de ligne n'est qu'un caractère, c'est pas de l'optimisation ça.. en plus tu détruit la mise en forme, quand tu va afficher le texte..
|
|
|
00
|
|
|
#4 | |
|
Membre éprouvé
![]() Inscription : novembre 2007 Messages : 453 ![]() |
Citation:
Avez-vous lu la question de depart ? La question n'est pas d' "optimiser" le code comme vous dites, mais de supprimer les lignes blanches car elles prennent trop de place dans la bdd... Je suis passe par javascript pour remplacer les \n par des espaces simples (" "), on aurait pu evidemment passer par php... Si vous avez une meilleure solution, pourquoi ne l'avez vous pas proposee ? |
|
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : mars 2006 Messages : 318 ![]() |
un espace est aussi un caractère, au même titre que le saut de ligne et occupe donc le même "espace", et pour moi gagner de "l'espace" c'est optimiser..
que ce soit en iso-8859-1/15, ou en utf-8, le caractère de saut de ligne est codé sur un octet, il prend autant de place que n'importe quel caractère de la norme iso-8859-1 ou 15, et moins de place qu'un caractère accentué en utf-8, alors où est la perte d'espace ? sachant que l'on parle d'espace mémoire donc en octet.. après vous me direz qu'une ligne blanche comme vous dites est une suite de deux saut de ligne, êtes vous à deux caractères près ? et donc deux octets près ? |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 22 ![]() |
merci a tous
en réalite je ne suis pas un as de javascript et ai un peu du mal a comprendre dans ma bdd en clair j'ai les lignes a blanc 'l'utilisateur peur saisir comme je l''ai précisé 'llklklk + imaginons 5 lignes à blanc (donc touches entrée) + autre chose je ne veux pas mettre dans la bdd les lignes à blanc car prend trop de place mais je veux pouvoir : 1 - les restituer sans les lignes à blanc sur un affichage de colonne de tableau 2 - les afficher avec des lignes à blanc si je réaffiche le formulaire 3 - les reaffciher avec des lignes à blanc si j'envoies un mail sachant que l'utilisater souhaite que sa mise en forme (les lignes a blancs) soient restituées. j'esperes etre assez clair....mais en y reflechissant je ne vois pas de solution à mon problème............ |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : mars 2006 Messages : 318 ![]() |
une ligne blanche ne représente que deux caractères, donc même sans ligne blanche, il suffit d'utiliser des mots ou des phrases plus longues et ça prendrait plus d'"espace", le problème n'est pas ces lignes blanches, mais le type utilisé pour vos champs, qui détermine la taille en octet pour leur contenu.
|
|
|
00
|
|
|
#8 |
|
Membre éprouvé
![]() Inscription : novembre 2007 Messages : 453 ![]() |
Je n'ai pas interprete le sujet comme vous :
La "place" prise par une ligne blanche "\n" est de 2 octets effectivements, contre un espace " " un octet. Mais je ne pense pas que c'est ce que herve42 voulait dire : Je pense qu'il voulait dire qu'une ligne blanche le "genait" pour la lecture de la bdd : ex. on voit des lignes petites et tout d'un coup on voit une enorme ligne qui prend plein de place... on regarde dans la colone correspondante et on voit plein de saut de ligne... Maintenant peut-etre que vous avez raison, peut-etre que herve42 voulait dire de la "place" memoire, et non de la "place" visuelle... |
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Inscription : mars 2006 Messages : 318 ![]() |
effectivement.. vu sous cet angle.
enfin il a parlé de base de donnée, donc à partir de là, enfin pour moi.. ce n'est pas graphique. surtout qu'il parle de restituer le texte comme il y'a été entré, donc y'a pas vraiment d'intérêt à remplacer un caractère par un autre le résultat sera le même au bout du compte, à moins de remplacer deux caractères de saut de ligne par un caractère que l'on aura désigné, et faire l'inverse à l'affichage.. mais si c'est pour gagner de la place en mémoire, cela veut dire que le type utilisé pour stocker le texte n'est pas le bon.. nb: http://dev.mysql.com/doc/refman/5.0/...ing-types.html |
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 22 ![]() |
merci mais y'a un truc que je comprends pas quand vous parlez de /n
ma zone en bdd est de format text mysql et le contenu est issu d'une saisie en textarea voici le contenu exact pour exemple de la zone quand je la regarde en phpmyadmin "Bonjour, Suite à notre conversation téléphonique, vous trouverez ci-joint le formulaire de demande d'interconnexion. A titre d'exemple, j'ai conservé quelques informations fournies par l'xxxx dans le cadre de l'utilisation d'xxxxxxxxxx par l'agent comptable de la xxxx Le document une fois complété est à renvoyer à la BAL xxxxxxxxxxxxx Je reste à votre disposition pour toute information complémentaire Cordialement" il n'y a pas de /n juste des lignes avec plein de caractères à blanc, certes correctemment restituées mais qui doivent prendre de la place en bdd |
|
|
00
|
|
|
#11 |
|
Membre éprouvé
![]() Inscription : novembre 2007 Messages : 453 ![]() |
Parlez-vous de place VISUELLE ou de place de MEMOIRE ?
|
|
|
00
|
|
|
#12 |
|
Membre éclairé
![]() Inscription : mars 2006 Messages : 318 ![]() |
ce n'est pas parce que toi tu vois du blanc que c'est du blanc le caractère \n est un caractère spécial, qui signifie un saut de ligne (sous Linux, \r sous Mac OS, \r\n sous Windows), il n'est pas visible sous cette forme, tu ne le verras pas.. donc si tu en mets deux forcément tu vas avoir une ligne vide, et voir du blanc, mais ce n'est pas pour autant que c'est des espaces.. ce vide c'est une représentation, le contenu est strictement le même que tu as entré dans le textarea.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com