【问题标题】:PHP explode() - how to avoid blank lines?PHP explode() - 如何避免空行?
【发布时间】:2014-02-25 13:06:09
【问题描述】:

我认为这段代码在最后放置了一个空行。如果是真的,如何避免呢?

$text = explode( "\n", $text );
foreach( $text as $str ) { echo $str; }

【问题讨论】:

  • 在爆炸之前修剪文本? $text = trim($text, "\n");

标签: php explode


【解决方案1】:

您可以使用带有标志PREG_SPLIT_NO_EMPTYpreg_split 来代替explode

示例

$aLines = preg_split('/\n/', $sText, -1, PREG_SPLIT_NO_EMPTY);

但请注意 preg_split is slowerexplode

【讨论】:

    【解决方案2】:

    第一种方法是在分解字符串之前给你trim()函数。

    $text = trim($text, "\n");
    $text = explode( "\n", $text );
    foreach( $text as $str ) { echo $str; }
    

    另一种方法是在爆炸后使用array_filter()

    $text = explode( "\n", $text );
    $text = array_filter($text);
    foreach( $text as $str ) { echo $str; }
    

    默认array_filter()会移除等于false的元素,因此不需要将回调定义为第二个参数。

    无论如何,我认为第一种方式是最好的。

    【讨论】:

      【解决方案3】:

      在爆炸之前修剪文本。

      $text = trim($text, "\n");
      $text = explode( "\n", $text );
      foreach($text as $str) {
          echo $str;
      }
      

      【讨论】:

        猜你喜欢
        • 2019-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-30
        • 2017-09-29
        • 2011-10-01
        • 2021-05-15
        • 1970-01-01
        相关资源
        最近更新 更多