PHP将长字符串分隔为列表

Dre*_*rew 0 html php database string html-lists

我试图在数据库中存储一堆功能.我想的格式就是这样插入:

东西|分开了|更多东西|还有一些

现在,我需要从数据库中获取它并使其成为一个列表,如:

<ul>
    <li>Stuff Here</li>
    <li>Separated By That</li>
    <li>More Stuff</li>
    <li>And some more</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

那会容易吗?我知道我能做到:

str_replace("|", "<li>", $data);
Run Code Online (Sandbox Code Playgroud)

但那对于第一个项目和最后一个项目以及结束标签不起作用.我是否应该将我的列表插入数据库?或者这样很好,我只需要正确的代码来更好地格式化无序列表?

Cli*_*ive 5

我不认为你可以使用单行代码(希望得到纠正),所以是的,存储你当前在数据库中的数据并编写一个小帮助函数来分解字符串并构建HTML列表.

function build_list($string) {
  $output = '<ul>';
  $items = explode('|', $string);
  foreach ($items as $item) {
    $output .= '<li>' . $item . '</li>';
  }  
  $output .= '</ul>';

  return $output;
}
Run Code Online (Sandbox Code Playgroud)

  • 在我看来,这是最好的方法.您将不可避免地想要为当前所选项目的li标签添加属性,如果它用于导航或类似的东西,并且'聪明'的str_replace解决方案不再有用. (2认同)