У меня есть поле формы textarea, в котором пользователи будут помещать URL-адреса в новую строку. Можно ли обернуть каждую строку из этого поля textarea тегами <li>?
Поэтому мне понадобится вывод из поля, чтобы он был примерно таким:
<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, пожалуйста?
$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>';
А как насчет чего-то подобного?
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>
Используя регулярное выражение, вы можете проверить непустые строки как часть вашего теста:
$li_text = preg_replace('/^(.+)$/', '<li>$1</li>', $_POST['textarea']);
Таким образом, если у пользователя есть дополнительная новая строка в конце их ввода (или где-либо внутри), вы не получите лишних элементов списка.