Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用li标记在textarea中包装每一行?PHP_Php_Textarea - Fatal编程技术网

如何用li标记在textarea中包装每一行?PHP

如何用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.

我有一个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.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
  • dsdsa
  • dsadsad
  • DSAD
  • vcxvxcvxvcxvcx
  • fdsfdsfdsfs

  • 这很好,但无法使其正常工作。它不会将li标记放在任何来自文本区域的东西上,但硬编码数据可以工作。顺便说一句,我从textarea得到的内容是一个变量,如果这有区别的话。更新:如果textarea中只有一行文本,它就可以正常工作。如果有超过1行,则不会添加任何li标记。编辑后可添加多行正则表达式选项。谢谢标记,效果非常好。如果我能以某种方式省略空行,那就太完美了!非常感谢。工作完美。非常感谢!!
    <li>dsadsa
    </li>
    <li>dsdsa
    </li>
    <li>dsadsad
    </li>
    <li>dsadsadsad
    </li>
    <li>vcxvxcvxvcxvcx
    </li>
    <li>fdsfdsfdsfs
    </li>