I have a textarea form field where users will put URL's separated by a new line. Would it be possible to wrap each line from this textarea field with < li > tags?
So I would need the output from the field to be something like this:
开发者_运维知识库<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>
Does anyone know who to achive this with PHP please?
$textareaData = '<li>'.str_replace("\n","</li>\n<li>",trim($textareaData,"\n")).'</li>';
EDIT
Modified to get rid of all blank lines as well:
$textareaData = '<li>'.str_replace(array("\r","\n\n","\n"),array('',"\n","</li>\n<li>"),trim($textareaData,"\n\r")).'</li>';
And what about something like this
echo preg_replace('/^(.+)(\s*)$/m', '<li>$1</li>', $text);
Output will be anything like this (not nice, but usefull):
<li>dsadsa
</li>
<li>dsdsa
</li>
<li>dsadsad
</li>
<li>dsadsadsad
</li>
<li>vcxvxcvxvcxvcx
</li>
<li>fdsfdsfdsfs
</li>
Using a regular expression you can check for non-empty lines as part of your test:
$li_text = preg_replace('/^(.+)$/', '<li>$1</li>', $_POST['textarea']);
That way if the user has an extra new line at the end of their input (or anywhere inside) you won't get extra empty list items.
精彩评论