2016-09-09 2 views
-1

Also ich versuche, meine nl2br zu arbeiten, aber es funktioniert einfach nicht so, wie ich hoffe, es würde.nl2br funktioniert nicht mit htmlspecialchars

Wie es Text aus einer Datenbank abruft, ich will es erkennen, die \ n mit nl2br Ich habe htmlspecialchars, was der Grund ist, dass es nicht funktioniert. Wie würde ich dieses Problem lösen?

Mein Code: Die post-Variable wie folgt aussieht

$post = nl2br($row['p_post']);

was bedeutet, dass es im Inneren der es wie diese echo '<p>'.nl2br(htmlspecialchars($post, ENT_QUOTES)).'</p>; zu setzen htmlspecialchars() echo '<p>'.htmlspecialchars($post, ENT_QUOTES).'</p>;

Ich habe versucht, landet aber am Ende als ob es überhaupt keine nl2br gäbe.

Wie es von Anfang an How it looks

enter image description here

sieht Wie sieht es aus, nachdem ich die nl2br hinzugefügt haben

+0

Sehen Sie dies im Webbrowser? –

+0

@AbraCadaver Wie wäre es nicht? Sonst würde es nicht das sichtbare
Synyster

+0

erstellen Ihre zweite Version funktioniert für mich, siehe http://ideone.com/YSd9VQ – Barmar

Antwort

0

Dies wurde behoben, es schien, dass eine andere Variable irgendwie damit kollidierte, so dass es die <br> Tags nicht wirklich machen würde.

0

Sie sind doppelt codiert, die tags:

$foo = "how\ndoes\nthis\nlook"; 
$post = nl2br($foo); // $post is now "how<br>does<br>this<br>look" 
$temp = nl2br(htmlspecialchars($post)); // $temp is now "how&lt;br&gt;does etc..." 
echo '<p>how&lt;br&gt;does&lt; etc...'; 

Sie haben die Zeilenumbrüche in break-Tags umgewandelt, dann haben Sie die break-Tags in html-Zeichen-Entities codiert, also y Unser Browser rendert diese Tags als "visuelle" Tags und nicht als HTML-Zeilenumbrüche.

Verwandte Themen