-1

我的数据库中名为“职责”的表中有以下内容

Progressing of new Engineering & Technical enquiries from client
Expediting jobs
Resolving any client's requests
Quote processing
Communicating and liaising between client and Team Leader
Progressing of new repair enquiries
Attend meetings with clients and generating enquiries
Build relationships and obtain new orders from clients
Liaising with customer planners to organise offshore trips
Assisting in the workshop during busy periods

它通过 Textarea 输入到数据库中,每个都是一个新行。

输出数据库单元格时,它显示为单行。但是,如果我使用nl2br它来回显它会添加<br>到代码中,因此它会显示为列表。

$result2 = $con->query('SELECT * FROM role WHERE id = "'.$row['role'].'"');
while ($row2 = $result2->fetch_assoc()) {
    echo "<p>".nl2br($row2['duties'])."</p>";
}

有没有办法改变它,让它回显每一行,而不是<br>像下面这样的实际列表项?

<li>Progressing of new Engineering & Technical enquiries from client</li>
<li>Expediting jobs</li>
<li>Resolving any client's requests</li>
<li>Quote processing</li>
<li>Communicating and liaising between client and Team Leader</li>
<li>Progressing of new repair enquiries</li>
<li>Attend meetings with clients and generating enquiries</li>
<li>Build relationships and obtain new orders from clients</li>
<li>Liaising with customer planners to organise offshore trips</li>
<li>Assisting in the workshop during busy periods</li>
4

1 回答 1

1

在你的while循环中,替换:

echo "<p>".nl2br($row2['duties'])."</p>";

$withLineBreaks = nl2br($row2['duties']) ;
echo "<li>" . str_replace ( "<br/>", "</li><li>" , mixed $withLineBreaks) . "</li>";

(如果您的数据末尾有一个尾随换行符,那么您最终会得到一个多余的/空<li></li>的 - 所以您可能需要先将其修剪掉)。

当然nl2br,如果你有正确的正则表达式,你可以直接替换那些换行符而不是使用。无法对此进行测试,但认为这应该获得任何常见的换行格式:

echo "<li>" . preg_replace("#[\n\r]{1,2}#","</li><li>", $row2['duties']) . "</li>";
于 2013-04-08T10:19:45.897 回答