如何用li标签包装textarea中的每一个新行? PHP

时间:2010-08-15 13:26:04

标签: php textarea

我有一个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来解决这个问题?

3 个答案:

答案 0 :(得分:13)

$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>';

答案 1 :(得分:1)

那样的事情

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>

答案 2 :(得分:0)

使用正则表达式,您可以检查非空行作为测试的一部分:

$li_text = preg_replace('/^(.+)$/', '<li>$1</li>', $_POST['textarea']);

这样,如果用户在输入的末尾(或内部任何地方)有一个额外的新行,则不会获得额外的空列表项。