Проблема с вашим синтаксисом в preg_replace () заключается в том, что вы не определили шаблон как точное регулярное выражение. Ваш метод будет работать, если вы используете str_replace (), но для preg_replace () правильный шаблон для идентификации <i>
равен '/<i>/'
. По сути, вам нужно заключить его в /
символа, чтобы определить его как регулярное выражение.
Выражение Джонатана намного лучше, чем реализация шаблон за шаблоном, если вы хотите удалить все теги. Если нет, вы можете обрабатывать определенные теги, как это:
$test = "Home<i>\r</i><i>\n</i>";
$patterns = array();
$patterns[0] = '/<\/?i>/'; //removes <i> and </i>
$patterns[1] = '/\r|\n/'; //removes \r and \n
$test = preg_replace($patterns, '', $test);