2011-03-02 4 views
0

je une forme qui a échappé à l'entrée en PHP d'une manière assez standard en utilisant cette fonction:caractères Newline ne se présente pas

mysql_real_escape_string(string) 

Mais quand je tire ces contenus de la base de données, pour une raison quelconque, la les espaces ne sont plus visibles et le texte s'affiche comme un gros bloc. Cette page en a l'exemple dans la zone de description de randonnée: http://www.comehike.com/hikes/scheduled_hike.php?hike_id=131

Est-ce que quelqu'un sait pourquoi cela se produit et comment l'éviter? Est-ce un bug ou un comportement normal?

Répondre

5

vous devez apprendre les bases du HTML.

sauts de ligne prévu ne pas être rendu en HTML.
Pour le rendre visible, vous devez les remplacer par une balise HTML.

+2

par exemple en utilisant la fonction 'nl2br()' de PHP. –

+0

IE: insérer '
' – kjy112

+0

Merci! Est-ce que c'est la bonne approche pour moi ici: $ myString = nl2br ($ myString); – Genadinik

1

Ceci est un comportement normal - les "espaces" auxquels vous faites référence sont considérés comme des espaces. Vous pouvez lire sur le comportement des espaces en HTML here.

Vous disposez de quatre options de base:

  1. Remplacez la ligne rompt avec la ligne HTML casse à l'exécution en utilisant PHP's nl2br function (facile ... si vous faites cela, envelopper aussi toute la description dans une balise <p>)
  2. Wrap la description <pre> balises (facile, mais pas recommandé car il n'est pas sémantiquement correcte et probablement causer des maux de tête de style non intentionnelles)
  3. Parse votre description à l'exécution dans les paragraphes réels, enveloppé dans les balises HTML <p>
  4. Composez votre contenu textuel avec des balises HTML en premier lieu afin qu'il soit stocké dans la base de données de cette façon (ce qui est la façon dont les systèmes de gestion de contenu plus de travail)