对于每个单独的新文本行,将该行放入div标记

时间:2017-12-18 11:12:12

标签: php html css

我最近尝试将PHP,HTML和CSS集成到一个网站中。现在,我试图回应这个从数据库进入网站的结果,其中文本中的每个新行/换行符都放入了自己的div标签中。

因为我正在尝试制作一个清单,其中可以从数据库中检索如何执行某些操作的说明,而我正在使用PHP来执行此操作。

检索时将检索的数据采用TEXT格式,看起来像这样。

Perform this step
Then do this step
Lastly, do this step

正如你所看到的,每个步骤都占用了它自己的行,我无法弄清楚我是如何做到这一点的,所以对于每一个新行,它应该正确地放入HTML中自己的单独div标签中。将有一些CSS样式来改变它的外观。

有谁知道怎么做?或者他们能指出我正确的方向吗?有没有类似的文章,因为我找不到一篇。

如果有人需要更多信息我可以编辑帖子,但希望这篇文章不会被关闭。

我对任何解决方案都持开放态度,但除非绝对必要,否则我宁愿不使用jquery。

谢谢!

1 个答案:

答案 0 :(得分:0)

逐步将问题分解为几个阶段:

1)您需要将文本文件分解为" rows"。因为不同的系统使用不同的分隔符用于"行"文本;你应该使用PHP_EOL特殊常数。

2)一旦分成行,您需要将这些行包装在所需的HTML格式

3)然后将它们重新组合到输出中。

这样:

$parts = explode(PHP_EOL,$data);
foreach($data as $row){
     $row = "<div class='instructionStyling'>".$row."</div>\n";
}
unset($row);
$output = "<div class='instructionStyling'>".implode(PHP_EOL,$parts)."</div>";  
  

执行此步骤
     然后执行此步骤
     最后,执行此步骤

变为:

<div class='instructionStyling'>Perform this step</div>
<div class='instructionStyling'>Then do this step</div>
<div class='instructionStyling'>Lastly, do this step</div>

更短的版本:

$output = preg_replace("/\n+/i","</li><li>",$data);
$output = "<ul><li>".substr_replace($data,"</ul>",-4,4);
<ul><li>Perform this step</li>
<li>Then do this step</li>
<li>Lastly, do this step</li></ul>
  • 使用样式表并优先li / ul
  • 处理字符串的内容意味着您还需要将完成的字符串包装在HTML(div s或ul s等中。)
  • \n代替了PHP_EOL,但为了清晰起见,建议PHP_EOL