php将文本列表转换为html列表
问题描述:
我有一个表格列,其中包含由“br”标记(没有新行)分隔的项目列表。php将文本列表转换为html列表
我获取这些数据并将br标签转换为如下定义的新行。
$nlformat = str_replace("<br>","\n",$mem['mem_services']);
我还在这个PHP脚本中写了一个文件,将这个列表变成一个带有“li”标签的html列表。这是很容易的,但如果列表中有两个连续的新行“\ n \ n”我想结束第一个列表,创建第二个名单是这样的...
<ul>
<li>item</li>
<li>item</li>
<li>item</li>
</ul>
<ul>
<li>item</li>
<li>item</li>
<li>item</li>
</ul>
我有识别的问题以下变量中连续2个新行。以下是本网站其他回答问题的众多例子之一。没有人工作
$newul = preg_replace("/\r\n\r\n|\n\n|\r\r/", "</li></ul><ul><li>", $nlformat);
有谁知道为什么。也许它与$ nlformat变量有关。
随着当前例子我没有得到任何改变$ nlformat即
item
item
item
item
item
item
答
我对这个问题的办法是, 我有了\ n字符之间的字符串。我将首先建立一个格式化的数组,然后用它来构建html。以便您可以使用与您的问题相关的代码部分
请尝试这种方式。
$nlFormat="item\nitem\nitem\n\nitem\nitem\nitem";
$tmp_arr1= explode("\n\n",$nlFormat);
$final_arr=array();
// now $tmp_arr1 has n number of sections;
foreach($tmp_arr1 as $section){
$final_arr[]= explode("\n",$section);
}
//var_dump($final_arr);
现在可以生成html
$html="";
foreach($final_arr as $section){
$html.="<ul><li>";
$html.=implode("</li><li>",$section);
$html.="</li></ul>";
}
echo $html;
希望这有助于你
你怎么得到期望的结果,而不是? – Barmar
它适用于我:http://ideone.com/5jj6lx – Barmar
@Barmar - 有趣的是,它适用于您所介绍的测试网站,因为我尝试了您使用的代码并上传到我的服务器,但无法正常工作。 – Spaceman