10
votes

Comment stocker du texte formaté dans la table MySQL?

[ma nouvelle question modifiée] strong>

Je prends la saisie de texte dans le formulaire HTML comme


7 commentaires

Pas html, texte simple. J'ai édité ma question. Vérifiez s'il vous plaît. Merci!!


Je veux que mes clients ajoutent des critiques de certains articles (comme des téléphones mobiles, etc.). Je veux que l'examen apparaisse comme indiqué par le critique. J'utilise php avec mysql. Pls laissez-moi savoir si plus de détails sont nécessaires. Merci!!


"Texte simple" n'a pas de formatage.


Quel éditeur de texte riche utilisez-vous pour votre page Web?


Je n'utilise aucun contrôle d'édition. Je fournis simplement une zone de texte à l'utilisateur dans lequel il entre dans un texte (avec des caractères transversaux et autres). Ce texte que je stocke dans la base de données et l'affiche sur mon site Web.


@isumitg mais textarea ne prend pas en charge le texte audacieux / italique / etc.


J'ai essayé d'utiliser des tags avant, comme indique la réponse de "JB Nizet" et ça marche


3 Réponses :


3
votes

Je pense que vous pouvez stocker avec utf_encode () . et obtenez-le avec utf_decode () . Vous pouvez voir le n12br fonction de php.

- Edit -

i Crypypt en utilisant BASE64_ENCODE () et pour obtenir que j'utilise base64_decode () . Les onglets, les espaces et les caractères spéciaux sont préservés.


3 commentaires

Et qu'est-ce que la base64 coding a à voir avec la question?


Avec la base64 Encode, vous pouvez conserver des onglets, des espaces, des caractères spéciaux et plus de détails d'un texte original. Cette fonction est facile à chiffrer et à déchiffrer.


@Bruno Alano: Ce que vous dites n'a aucun sens. BASE64 est utile pour stocker binaire comme ASCII, mais cela ne préserve rien de plus que le texte brut. Et ce n'est pas un cryptage: il vient de coder. Tout le monde peut décoder des données codées de base64. Pour déchiffrer des données cryptées, vous devez avoir une clé secrète.



3
votes

espaces et ponctuation sont conservés.

Si vous ne les voyez pas, vous n'êtes probablement pas sortie le texte dans un document HTML et que vous oubliez de le marquer en tant que HTML: N'oubliez pas que les navigateurs Web ignorent les nouvelles lignes et les espaces consécutifs en plainte .

Quant au formatage comme audacieux, vous devez trouver un moyen de Marquage-up votre texte pour stocker les informations de formatage. Vous pouvez envisager HTML ou Markdown.


9 commentaires

Merci Tomalak. Pouvez-vous s'il vous plaît dire comment puis-je conserver les caractèresWLINE? Les caractères audacieux et en italique ne sont pas beaucoup d'importance pour moi en ce moment.


@isumitg: Comme la première ligne de ma réponse indique, en caractères d'accès audacieux, ils sont sont conservés.


nl2br () convertira \ n à , mais ceci est à des fins d'affichage uniquement. Faire une telle transformation modifie fondamentalement le texte, de sorte que vous ne reviendrez pas ce que vous mettriez.


@Marcb: Je n'ai pas recommandé nl2br .


Sory, aurait dû @ isumitg'd à ce sujet.


Vous devez stocker avec des balises HTML comme Marc B Sayed


@macwadu: Non, vous ne le faites pas. Et Marc n'a pas dit cela du tout.


@macwadu: vous peut stocker des balises HTML et les utiliser comme représentation pour la mise en forme. J'ai dit que vous n'êtes pas obligé, et que Marc n'a pas dit que vous deviez. Vous pouvez choisir n'importe quel système de formatage que vous aimez.


@ Tomalakgeret'kal évident Vous pouvez choisir n'importe quel programme de formatage que vous aimez. Mon intention était de dire que dans HTML, cela fonctionne si c'est le meilleur moyen de le faire que chacun d'entre eux est que le projet peut savoir que. Désolé pour la confusion.



9
votes

Le texte brut inclure uniquement les caractères, pas en formatage comme audacieux, en italique ou souligné. Les onglets, les marques de ponctuation et les nouvelles lignes sont des caractères, donc un simple varchar fera si tout ce que vous avez vraiment besoin est celui-ci.

Mais vous devez décider d'un protocole de formatage si vous voulez audacieux, en italique et texte souligné: HTML, Syntaxe Wiki, RTF, etc. Si ce format est textuel, un Varchararre fera. Si c'est binaire, vous aurez besoin d'une blob.

Si vous avez des lignes neuves dans votre texte et qu'il est affiché sur une seule ligne, c'est probablement parce que vous l'envoyez dans une page HTML, où les séquences de caractères spatiaux (onglets, espaces, nouvelles lignes, etc.) sont convertis en un espace simple. . Utilisez un votre texte HTML-échappé ici , et il affiche correctement les nouvelles lignes, onglets et plusieurs espaces.


0 commentaires