【问题标题】:Codeigniter - remove blank lines from my rendered viewsCodeigniter - 从我的渲染视图中删除空白行
【发布时间】:2011-10-04 08:33:40
【问题描述】:

我在一个视图中有以下代码:

<div>
    <p>Some text here</p>
    <?= $content ?>
    <p>..another paragraph here</p>
</div>

现在如果$content 变量是一个空字符串,我会得到:

<div>
    <p>Some text here</p>

    <p>..another paragraph here</p>
</div>

我需要做些什么来防止这个空行被添加到我的 HTML 中?

我正在寻找一种解决方案,可以在我的视图文件和呈现给浏览器的 HTML 中保留我的代码格式。

【问题讨论】:

    标签: php html codeigniter


    【解决方案1】:

    在新行之前打开和关闭 PHP 标记,这样空格就在 PHP 的范围内,因此会被忽略并且不会输出到浏览器。

    <p>Some text here</p><?php 
    echo $content;
    ?><p>..another paragraph here</p>
    

    【讨论】:

    • 感谢@Matt,但我一直在寻找一种解决方案,可以在我的视图文件和呈现的 HTML 中保留我的代码格式...
    • @freshest,这就是它的完成方式。正如马特所说,如果空格在 php 标签之外,那么它将被输出到浏览器。这样做的唯一另一种方法是完全改变您使用视图的方式并转到模板系统(一个非常戏剧性的变化,以摆脱空白)。我想知道,相同格式的推动力是什么?无论如何,您不应该在将 html 推送到浏览器之前对其进行压缩吗?
    • @swatkins,因为与我合作的前端设计师希望浏览器中呈现的 HTML 格式正确。
    • 很公平。您可以做的一件事是使用输出缓冲区并在输出到浏览器之前去除任何额外的行。 php.net/manual/en/function.ob-start.php
    【解决方案2】:

    如果您不应该使用 CI 的模板解析器,您可以选择完整的模板系统。 我在 CI 中使用Smarty,效果很好(对我来说)。 Smarty 有strip function,这让你想要的东西很相似。

    【讨论】:

      【解决方案3】:
      <p>Some text here</p>
      <?php 
      if($content != "") 
      echo $content;
      ?>
      <p>..another paragraph here</p>
      

      你只是在那儿放了一个条件语句。

      【讨论】:

      • 这将导致添加 2 个新行。
      猜你喜欢
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 2019-09-29
      相关资源
      最近更新 更多