格式化字符串以使用php显示为列表

时间:2018-11-25 10:21:41

标签: php html string list format

我将textarea的内容存储在用户提交后的PHP字符串中。我希望能够调整该字符串内容的格式,以便在回显该字符串时将其显示为列表。换句话说,我需要分别在行首和末尾插入UL/UL,并在每行的开头和末尾插入LI和/LI

在弄乱我的代码之前,我想知道是否有人知道这是否可能?是否通过textarea发送回车回执?任何帮助/评论将不胜感激。

[编辑]

我已经定义了一些变量,以便为自己提供所有必要的HTML内容。 “曲目”变量是包含从用户输入发送的文本的原始字符串。

$repertoire = ($_POST['repertoire']); 

$list_start = '<UL>';
$list_end = '</UL>';
$list_end = '</UL>';
$list_start_line = '<LI>'; 
$list_end_line = '</LI>';

以下是用户将提交的内容的示例,因此,将构成原始$repertoire字符串的内容:

  

Luciano Berio-圈子

     

Mike Svoboda-Piangero la sorte mia

     

Nicholas von Ritter-Zahony-新曲

     

Stefano Gervasoni-Due Poesie Francesi di Rilke

所以我们至少需要以下条件:

$repertoire_formatted = substr_replace($list_start, $repertoire, $list_end);

...但是我不知道如何用<LI>代替换行符;而且,我无法提前知道字符串或每行的长度。

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式选择每一行并将其包装在<li></li>

$html = preg_replace("/([^\n]+)/", "<li>$1</li>", $repertoire);
$html = "<ul>\n$html</ul>";

demo中查看结果