Bonjour à tous,

Est-il possible d'afficher plusieurs espaces à la suite ?

Je vous explique mon problème.

D'un côté j'ai un formulaire avec un textarea dans lequel je peux écrire des articles que je sauvegarde dans ma base de donnée (côté backend/administrateur).
Et d'un autre côté j'ai une page qui affiche cet article sur une page accessible à tout le monde.

Il s'agit d'un problème d'affichage (côté frontend/visiteur).

Quand je mets plusieurs espaces à la suite, lors de l'affichage ces espaces sont réduits à un mais j'aimerais les garder tels que dans mon textarea.
Pour être clair, si j'écris dans mon article : "Bonjour espace espace espace espace comment allez-vous ?" dans la page d'affichage j'aurais : "Bonjour comment allez-vous ?".

Ce que je n'arrive pas à comprendre c'est que quand je veux modifier un ancien article je l'affiche dans un textarea, forcément, et là tous les espaces sont bien affichés.

J'ai aussi du utiliser différentes manières pour afficher l'article sur le site et dans un textarea, pourquoi je n'arrive pas à obtenir les mêmes affichages avec les mêmes instructions ? Je ne comprend pas.

Je vous mets quelques lignes de codes pour que ce soit plus compréhensible.

Lorsque j'insère mes données en DB :

//formatage des données pour l'insert
$donnee = mysql_real_escape_string($donnee);
$donnee = addcslashes($donnee, '%_');
// insert de $donnee...


Et lorsque je veux afficher je fais :

//select donnee from DB
$donnee_a_afficher = htmlspecialchars(stripslashes($comentaire)); 


Ceci affiche très bien mon article dans mon textarea, si je veux le modifier mais n'affiche pas les passages à la ligne dans le <span> ni les espaces multiples sur la page visible de tous. Si je veux donc que les passages à la ligne soient respectés je dois rajouter un nl2br(). Première interrogation, pourquoi cette différence ? Par contre je ne peux pas laisser le nl2br() lorsque j'affiche dans mon textarea car sinon j'obtient un <br /> à chaque passage à la ligne.

Voilà mon soucis, je tourne en rond depuis plusieurs jours et m'arrache les cheveux... d'où mon appel à l'aide Smiley biggrin
J'ai déjà essayer pas mal de choses mais rien de concluant...

Merci d'avance pour votre aide.

Bonne soirée.

Kevin
Modifié par kevinAsh (20 Nov 2009 - 18:50)
Bonjour,

kevinAsh a écrit :
Est-il possible d'afficher plusieurs espaces à la suite ?

Oui.

kevinAsh a écrit :
Première interrogation, pourquoi cette différence ?

Réponse de normand: tu as commencé ton apprentissage de HTML il y a dix minutes? Smiley cligne

Vraie réponse: c'est un comportement normal de la quasi-totalité des éléments HTML. Pour la plupart des éléments HTML, les retours à la ligne ne sont pas significatifs, et tous les caractères «blancs» (espaces, tabulations, retours à la ligne) sont réduits à un seul charactère espace.

Pour obtenir des retours à la ligne, on utilise la balise <br />. Pour faire des paragraphes en bonne et due forme, on utilise l'élément P (balises <p> et </p>). Pour faire des titres on utilise les éléments H1, H2, H3, etc. Et ainsi de suite. Enfin, pour tout ce qui est présentation, on utilise les CSS. Y compris pour réguler l'espacement entre les paragraphes, l'alignement du texte, les marges, etc.

En réalité, dans un article pour le Web, il y a très peu de types de contenus pour lesquels on a besoin d'un affichage de tous les caractères blancs saisis (tabulations, espaces, retours à la ligne). Les exemples type sont les suivants:
- les codes informatiques (que l'on souhaite afficher comme contenu, pas exécuter comme code de la page web);
- les contenus de type ASCII Art (faire une recherche si le concept n'est pas connu).

Donc si pour tes articles tu as besoin d'afficher des séries d'espaces, et ce de manière répétée, soit tu es dans un cas un peu particulier... soit tu fais les choses de travers. Par exemple, une erreur de débutant consiste à utiliser des successions d'espaces pour simuler un centrage du texte ou un alignement à droite.
Merci pour tes explications.

Je ne suis pas vraiment dans un des cas particuliers que tu as décrit mais plutôt dans le cas de l'erreur du débutant.

Je ne serais pas le seul à pouvoir écrire des articles et je m'étais dis que si quelqu'un utilisait justement une série d'espaces pour formater son article, il serait bien que ces espaces s'affichent...
Je comprend bien que ce genre de formatage devrait être fait en CSS mais comme cette personne n'y aura pas accès je ne voyais que de simples espaces pour simuler ce comportement.

Merci encore et bonne journée.

Kevin