использование htmlspecialchars() для сохранения значения символов, но опускание ‹br/› в выходном отображении

Мне нужно отформатировать строку

$string = "<em>Hello</em><br/>world";

отображать как:

<em>Hello</em>
world

Все символы HTML должны отображаться как есть, чтобы сохранить их значение, за исключением <br/>, \n и т. д.

Тег <br/> должен по-прежнему делать то, для чего он предназначен, разрывать строку, но все остальные теги должны отображаться, как указано выше.

Я хочу сделать это примерно так:

htmlspecialchars($string); // except for the <br/> or \n tags

Значение $string необходимо вставить в таблицу базы данных таким образом, чтобы выходные данные отображались, как показано выше.

Используя PHP, как лучше всего это сделать


person proPhet    schedule 19.10.2014    source источник


Ответы (1)


Попробуйте заменить <br> на \n

$html = '<em>Hello</em><br/>world';
$nl = preg_replace('#<br\s*/?>#i', "\n", $html);
echo $nl;

Источник: https://stackoverflow.com/a/2436181/552807

person Carca    schedule 19.10.2014
comment
хорошая трещина, хотя я думаю, что вы неправильно понимаете вопрос. Мне нужно решение для включения определенного вывода, как описано выше. Если вы запутались, напишите комментарий, и я постараюсь уточнить - person proPhet; 19.10.2014