Как обернуть каждую новую строку в текстовой области тегами li? PHP
У меня есть поле формы текстовой области, в котором пользователи будут помещать URL-адреса, разделенные новой строкой. Можно ли обернуть каждую строку из этого поля текстовой области тегами
Поэтому мне нужно, чтобы вывод из поля был примерно таким:
<li>some.url.com</li>
<li>some.url.com</li>
<li>some.url.com</li>
<li>some.url.com</li>
<li>some.url.com</li>
Кто-нибудь знает, кто может достичь этого с помощью PHP, пожалуйста?
3
3 answers
$textareaData = '<li>'.str_replace("\n","</li>\n<li>",trim($textareaData,"\n")).'</li>';
РЕДАКТИРОВАТЬ
Изменено, чтобы также избавиться от всех пустых строк:
$textareaData = '<li>'.str_replace(array("\r","\n\n","\n"),array('',"\n","</li>\n<li>"),trim($textareaData,"\n\r")).'</li>';
13
Author: Mark Baker, 2010-08-15 15:44:12
А как насчет чего-то вроде этого
echo preg_replace('/^(.+)(\s*)$/m', '<li>$1</li>', $text);
Вывод будет примерно таким (не очень приятным, но полезным):
<li>dsadsa
</li>
<li>dsdsa
</li>
<li>dsadsad
</li>
<li>dsadsadsad
</li>
<li>vcxvxcvxvcxvcx
</li>
<li>fdsfdsfdsfs
</li>
1
Author: Michal Forbak, 2015-03-11 14:26:47
Используя регулярное выражение, вы можете проверить наличие непустых строк в рамках вашего теста:
$li_text = preg_replace('/^(.+)$/', '<li>$1</li>', $_POST['textarea']);
Таким образом, если у пользователя есть дополнительная новая строка в конце ввода (или где-либо внутри), вы не получите дополнительных пустых элементов списка.
0
Author: SoapBox, 2010-08-15 13:38:24