开发者

How to wrap each new line in textarea with li tags? PHP

开发者 https://www.devze.com 2023-01-12 03:22 出处:网络
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?

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消