php strip_tags: erlaubt, <br />?
Wie es möglich ist, zu ermöglichen <br />
im strip_tags() oder irgendeiner Weise kann ich dazu komme?
<?php
$text = '<p>Test <br />paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
//Allow <p>, <a>, <br />
echo strip_tags($text, '<p><a><br />');
echo "\n";
//Allow <br /> only
echo strip_tags($text, '<br />');
?>
Ergebnis:
Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>
Test paragraph. Other text
Dank,
Lau
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht über ein self-closing tag-name?
echo strip_tags($text, '<br>');
Den
strip_tags()
Funktionallowable_tags
argument, dass die erlaubten tags in der form<tagname>
Der Grund, warum dein code nicht funktioniert hat, war, weil Sie verwendet werden<br />
statt<br>
.strip_tags($text, '<br><p><b>');
strip_tags
ist nicht beabsichtigt, als eine Sicherheitsmaßnahme, und Sie es mitallowable_tags
ist definitiv unsicher, lasse es durch event-handler und andere schädliche Attribute.Wenn Sie zulassen möchten, dass Benutzer die Eingabe mit einem paar auf der Whitelist Elemente und Attribute, die Sie brauchen, um verwenden Sie einen HTML-Desinfektions-Bibliothek mit einem entsprechenden HTML-parser. Siehe zum Beispiel HTML purifier.
Ist es meist besser für den user-Kommentaren, nicht, um dem Benutzer die Kontrolle über das HTML-markup, sondern zu akzeptieren, unformatierten text, HTML-Flucht auf die Produktion, und tun, Ersatz zu generieren markup von text (z.B.:
\n
-><br>
,\n\n
-></p><p>
, link-Erkennung).Leerzeichen sind auch nicht erlaubt tags: http://php.net/manual/en/function.strip-tags.php (siehe 2. Hinweis)
Ya Sie können mischen Sie einen oder mehr tag werden gestreift gleichen Zeit.
Dokumentation
wenn Sie wollen, um Streifen neue Zeile, als auch die Lösung werden vor dem Abisolieren können Sie nl2br
so