如何用li标记在textarea中包装每一行?PHP
我有一个textarea表单字段,用户将把URL用新行分隔。是否可以使用如何用li标记在textarea中包装每一行?PHP,php,textarea,Php,Textarea,我有一个textarea表单字段,用户将把URL用新行分隔。是否可以使用标记将此textarea字段中的每一行换行 所以我需要字段的输出是这样的: <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> some.
<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>
some.url.com
some.url.com
some.url.com
some.url.com
some.url.com
有人知道谁可以用PHP实现这一点吗?$textareaData=''.str\u replace(“\n”),“ \n”,trim($textareaData,“\n”)。 ”;
$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>';
$textareaData='”。str_替换(数组(“\r”、“\n\n”、“\n”)、数组(““、”、“ \n”),trim($textareaData,“\n\r”)。 ”;
使用正则表达式,您可以在测试中检查非空行:
$li_text = preg_replace('/^(.+)$/', '<li>$1</li>', $_POST['textarea']);
$li\u text=preg\u replace(“/^(+)$/”、“$1 ”、$\u POST['textarea]”);
这样,如果用户在输入的末尾(或其中的任何地方)有一个额外的新行,您将不会得到额外的空列表项。那么类似的内容呢
echo preg_replace('/^(.+)(\s*)$/m', '<li>$1</li>', $text);
echo preg_替换('/^(+.+)(\s*)$/m','$1 ',$text);
输出将如下所示(不好,但有用):
dsadsa
这很好,但无法使其正常工作。它不会将li标记放在任何来自文本区域的东西上,但硬编码数据可以工作。顺便说一句,我从textarea得到的内容是一个变量,如果这有区别的话。更新:如果textarea中只有一行文本,它就可以正常工作。如果有超过1行,则不会添加任何li标记。编辑后可添加多行正则表达式选项。谢谢标记,效果非常好。如果我能以某种方式省略空行,那就太完美了!非常感谢。工作完美。非常感谢!!
<li>dsadsa
</li>
<li>dsdsa
</li>
<li>dsadsad
</li>
<li>dsadsadsad
</li>
<li>vcxvxcvxvcxvcx
</li>
<li>fdsfdsfdsfs
</li>