Как конвертировать <br /> в новую строку в предварительно заполненной текстовой области
У меня проблемы с <BR />
теги, появляющиеся внутри предварительно заполненной формы textarea (без разрывов, очевидно). Таким образом, эти теги разрыва должны быть преобразованы в /n
в пределах текстовой области. Этот предварительно заполненный текст извлекается через URL, который также содержит теги разрыва внутри него.
В основном что происходит и что мне нужно:
Мне нужно получить блок текста с предыдущей страницы (которая была первоначально извлечена из базы данных) и загрузить этот блок текста в поле textarea на странице отправки формы. Затем пользователь заполняет остальные поля формы и отправляет форму, эта информация затем сохраняется в конкретной таблице в базе данных.
Чтобы правильно отобразить блок текста на первой странице, мне пришлось использовать nl2br
чтобы этот раздел правильно ломался на странице. Очевидно, что теперь он выводит этот текст с перерывами вместо новых строк.
Это означает, что при нажатии на ссылку, чтобы заполнить форму на следующей странице, ссылка содержит теги разрыва, которые, в свою очередь, отображаются внутри поля textarea на следующей странице, а также в URL-адресе.
Я запутался в том, что мне нужно сделать, чтобы заменить эти <BR />
с /n
снова. Кажется, я мог бы использовать str_replace
или же preg_replace
, но мне еще предстоит найти пример того, как использовать любой из них в сочетании с чем-то вроде:
<textarea rows="10" cols="50"><? if(isset($_GET['text-property'])){ echo $_GET['text-property']; }?></textarea>
Имейте в виду, что я все еще изучаю PHP, поэтому мне действительно нужны подробности и желательно примеры, если это вообще возможно.
Спасибо!
1 ответ
Вам нужно использовать preg_replace
,
<textarea rows="10" cols="50"><? if(isset($_GET['text-property'])){ echo preg_replace('/<br[^>]*?>/si', '\n',$_GET['text-property']); }?></textarea>