我将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>
代替换行符;而且,我无法提前知道字符串或每行的长度。
答案 0 :(得分:1)
您可以使用正则表达式选择每一行并将其包装在<li></li>
$html = preg_replace("/([^\n]+)/", "<li>$1</li>", $repertoire);
$html = "<ul>\n$html</ul>";
在demo中查看结果