Использование htmlentities()
есть способ, который я могу установить, чтобы только <b>
и <i>
преобразовывать в жирный и курсивный текст? Я знаю, что есть один способ сделать это, но я забыл.
Это довольно легко
<?php $string = htmlentities($text); $string = str_replace(array("<i>", "<b>", "</i>", "</b>"), array("<i>", "<b>", "</i>", "</b>"), $string);
Я использую вспомогательную функцию:
# Sanitizer function - removes forbidden tags, including script tags function strip_tags_attributes( $str, $allowedTags = array('<a>','<b>','<blockquote>','<br>','<cite>','<code>','<del>','<div>','<em>','<ul>','<ol>','<li>','<dl>','<dt>','<dd>','<img>','<ins>','<u>','<q>','<h3>','<h4>','<h5>','<h6>','<samp>','<strong>','<sub>','<sup>','<p>','<table>','<tr>','<td>','<th>','<pre>','<span>'), $disabledEvents = array('onclick','ondblclick','onkeydown','onkeypress','onkeyup','onload','onmousedown','onmousemove','onmouseout','onmouseover','onmouseup','onunload') ) { if( empty($disabledEvents) ) { return strip_tags($str, implode('', $allowedTags)); } return preg_replace('/<(.*?)>/ies', "'<' . preg_replace(array('/javascript:[^\"\']*/i', '/(" . implode('|', $disabledEvents) . ")=[\"\'][^\"\']*[\"\']/i', '/\s+/'), array('', '', ' '), stripslashes('\\1')) . '>'", strip_tags($str, implode('', $allowedTags))); }
Для вашего примера удалите все, кроме <b>
и <i>
из массива $allowedTags
.