php strip_tags: erlaubt br /?

8

Wie ist es möglich, <br /> in strip_tags () zu erlauben oder wie ich dazu komme?

%Vor%

Ergebnis:

%Vor%

Danke, Lau

    
laukok 25.09.2010, 13:24
quelle

4 Antworten

16

Verwenden Sie keinen selbstschließenden Tag-Namen? echo strip_tags($text, '<br>');

Das strip_tags() Argument der allowable_tags Funktion akzeptiert die erlaubten Tags in der Form <tagname> Der Grund, warum dein Code nicht funktioniert hat, war, dass du <br /> anstelle von <br> benutzt hast.

    
Randy the Dev 25.09.2010, 13:27
quelle
6

strip_tags ist nicht als Sicherheitsmaßnahme gedacht, und die Verwendung mit allowable_tags ist definitiv unsicher, da Event-Handler und andere schädliche Attribute durchgelassen werden.

Wenn Sie eine Benutzereingabe mit einigen Elementen und Attributen auf der weißen Liste erlauben möchten, müssen Sie eine HTML-Bereinigungsbibliothek mit einem geeigneten HTML-Parser verwenden. Siehe zum Beispiel HTML-Reiniger .

Es ist normalerweise besser für Benutzerkommentare, dem Benutzer nicht die Kontrolle über das HTML-Markup zu geben, sondern Rohtext, HTML-Escape bei der Ausgabe und Ersetzungen, um Markup aus Text zu erzeugen (zB: \n ). - & gt; <br> , \n\n - & gt; </p><p> , Link-Erkennung).

    
bobince 25.09.2010 14:07
quelle
2

Whitespace ist auch nicht in Tags erlaubt: Ссылка (siehe 2. Note)

>     
Ronald 22.10.2012 17:30
quelle
1

Sie können ein oder mehrere Tags so mischen, dass sie gleichzeitig gestreift werden.

%Vor%

Überprüfen Sie die Dokumentation

Wenn Sie auch eine neue Zeile entfernen möchten, wird die Lösung vor dem Strippen verwendet. Sie können nl2br

verwenden

so

%Vor%     
Pramendra Gupta 25.09.2010 13:28
quelle

Tags und Links