Wie bewahren Sie formatierten text in MySQL-Tabelle?
[BEARBEITET meine Neue Frage]
Bin ich unter Texteingabe in HTML-form als <textarea>
. Angenommen, der Benutzer eingetragen, der folgende text:
1. Hello World
2. Hi World
3. Hola
Mein PHP-code einfügen in die Tabelle: 1. Hello World\r\n2. Hi World\r\n\r\n3. Hola
Ich bin angezeigt dieser text in ein DIV-element mit dem folgenden Verfahren (davon ausgehen, dass $text
abrufen aus Datenbank):
<div><?php echo $text ?></div>
Den Ausgang bin ich immer: 1. Hello World 2. Hi World 3. Hola
Wie man die genaue Leistung als Benutzer eingetragen? Nur wichtig für mich, jetzt ist das Leerzeichen, Tabulatoren und neue-Zeile-Zeichen. Wie bereits in der unten aufgeführten Antworten, nl2br()
wird nicht vorgeschlagen. Jeder andere Weg?
[Meine Alte Frage]
Ich möchte zum speichern von formatierten text in eine mysql-Tabelle. Durch formatiert, ich meine, zu bewahren ordnungsgemäße Fett, Kursiv, Unterstrichen, Leerzeichen, Tabulator, Satzzeichen, Zeilenumbrüche etc.
Wenn die oben genannten ist nicht möglich, wenn ich kann, erhalten Sie die folgende Formatierung dann auch meine Forderung ist erfüllt:
- Leerzeichen und Tabulatoren
- Satzzeichen und Zeilenumbrüche
Gibt es Daten geben Sie das speichern von solchen Daten? Was ist mit VARCHAR -, TEXT-und CHAR-Datentypen? Bitte um Hilfe!!
Beispiel: Wenn ich geben Sie den folgenden text:
Hi!
Hello there!
dann sollte es NICHT zu drucken, wie
Hi! Hello there!
- Nicht HTML, einfachen text. Ich habe bearbeitet Sie meine Frage. Pls überprüfen. Danke!!
- Ich möchte meine Kunden hinzufügen Bewertungen über einige Gegenstände (wie Handys etc.). Ich will die Prüfung zu erscheinen, wie es ist, als Eingabe durch den Prüfer. Ich bin PHP mit Mysql. Pls lassen Sie mich wissen, wenn weitere details erforderlich sind. Danke!!
- "einfacher text" ist keine Formatierung.
- Was rich-text-editor verwenden Sie für Ihre web-Seite?
- Ich bin nicht mit jedem edit-Steuerelement. Ich bin nur ein text-Feld, um den Benutzer in dem er kommt etwas text (mit Zeilenumbruch und andere Zeichen). Dieser text, den ich bin die Speicherung in der Datenbank und die Anzeige wieder auf meiner website.
- Aber die textarea-Komponente unterstützt keine Fett/Kursiv/etc text.
- Ich habe versucht, mit Hilfe von pre-tags, wie die Antwort von "JB Nizet" sagt und es funktioniert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Raw text sind nur Zeichen, keine Formatierungen wie Fett, Kursiv oder Unterstrichen. Tabs, Satzzeichen und newline-Zeichen, so dass eine einfache varchar tun, wenn alles, was Sie wirklich brauchen, ist dieser.
Aber Sie haben zu entscheiden, auf eine Formatierung Protokoll, wenn Sie wollen, Fett, Kursiv und unterstrichenen text: HTML, wiki-syntax, RTF, etc. Wenn Sie dieses format ist Text, varchar tun. Wenn es binary ist, benötigen Sie ein blob.
Wenn du Zeilenumbrüche in Ihren text ein, und es ist in einer Zeile angezeigt, es ist wahrscheinlich, weil Sie die Ausgabe in eine HTML-Seite, wo Sequenzen von Leerzeichen (tabs, Leerzeichen, Zeilenumbrüche, etc.) konvertiert einen einfachen Raum. Verwenden Sie eine
<pre>your HTML-escaped text here</pre>
Abschnitt, und es zeigt die Zeilenumbrüche, tabs und mehrere Leerzeichen korrekt.Leerzeichen und Satzzeichen sind erhalten.
Wenn Sie nicht sehen, wie Sie, dann bist du wahrscheinlich Ausgabe der text in einem HTML-Dokument und vergessen zu markieren es als HTML: denken Sie daran, web-Browser ignorieren die Zeilenumbrüche und aufeinanderfolgende Leerzeichen im Klartext.
Als für Formatierungen wie Fett, die Sie brauchen, um zu kommen mit einigen Art zu -Kennzeichnung-bis Ihren text zu speichern, die Formatierung Informationen. Könnten Sie die HTML-oder Markdown.
nl2br()
konvertieren\n
zu<br>
, aber das ist für die Anzeige Zwecke nur. Die Durchführung einer solchen transformation grundlegend verändert den text, so dass Sie nicht bekommen zurück, was man ablegen.nl2br
.Ich denke, man kann speichern mit
utf_encode()
. und bekommen es mitutf_decode()
. Sehen Sie dien12br
- Funktion von PHP.-- EDIT --
Ich verschlüsseln mit
base64_encode()
und zu bekommen ich benutzebase64_decode()
.Tabs, Leerzeichen und Sonderzeichen erhalten bleiben.
nl2br
.nl
(wie in "NewLine"), nichtn1
.