【问题标题】:Preserve line break in string inside array在数组内的字符串中保留换行符
【发布时间】:2021-08-28 17:40:53
【问题描述】:

我正在尝试输出通过 API 返回给我的字符串

但是当我用这个打印它时

<?php echo $m["page_features"]; ?>

打印如下(单行)

双层屋前卧室厨房岛阁楼户外厨房 4 滑出

但我想要这样

  • 工房
  • 前卧室
  • 厨房岛
  • 阁楼
  • 户外厨房
  • 4 滑出式

我怎样才能达到所需的输出结果, 请帮忙

【问题讨论】:

  • 你试过n2lbr吗?
  • 谢谢@SimoneRossaini
  • 不客气 :)

标签: php arrays string echo


【解决方案1】:

使用nl2br 进行常规换行

<?php echo nl2br($m["page_features"]); ?>

对于 UL 列表:

<?php 
$features = explode("\n",$m["page_features"]);
if (count($features)>0){
  echo"<ul>";
  foreach($features as $f) echo"<li>$f</li>";
  echo "</ul>";
}
?>

【讨论】:

  • 非常感谢@Kinglish 提供准确的解决方案
【解决方案2】:

解决方案是使用php的explode函数和forloop(任何循环)来循环每个值..
如果您提供完整的代码,那将非常有帮助! 因此,首先采用 2 个假设,接收到的数据具有 br 标签,其次它有太多的空格.... 如果我假设使用的标签是
那么试试这个

    <?php
    
    $str = "Bunk house <br> Front Bedroom   <br> kitchen <br> island  <br> loft  <br>      etc";
    
    $array = array_filter(explode("<br>",$str));
    
    foreach ($array as $value){
       echo  "<li>".$value."</li><br>";
    }
    
    ?>

如果我假设字符串中有太多空格,那么代码就变成了

   <?php
    
    $str = "Bunk house  Front Bedroom    kitchen island   loft        etc";
    
    $array = array_filter(explode("  ",$str));
    
    foreach ($array as $value){
       echo  "<li>".$value."</li><br>";
    }
    
    ?>

【讨论】:

    猜你喜欢
    • 2018-08-21
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 2021-10-28
    相关资源
    最近更新 更多