【问题标题】:Put HTML markup in PHP if function将 HTML 标记放入 PHP 中的 if 函数
【发布时间】:2015-02-10 11:38:08
【问题描述】:

PHP:

  if (isset($form['preview_message'])) {

    print drupal_render($form['preview_message']);
    print '</div>';
  }

我想要这样:

 if (isset($form['preview_message'])) {
      <div class="slide-nav">
            <a href="#"><span id="prev"></span></a>
            <a href="#"><span id="next"></span></a>

        </div>
    print drupal_render($form['preview_message']);
    print '</div>';
  }

我试过了,但有语法问题。我该如何解决?

【问题讨论】:

  • 方法是使用?&gt;标签退出PHP回到HTML,然后&lt;?php之后再次切换回PHP
  • 但是你真的应该考虑一种更干净的工作方式,将你的标记与你的 PHP 分开

标签: php drupal


【解决方案1】:

您需要执行以下操作之一:

关闭并重新打开您的 PHP 标记

if (isset($form['preview_message'])) {
    ?>
    <div class="slide-nav">
        <a href="#"><span id="prev"></span></a>
        <a href="#"><span id="next"></span></a>

    </div>
    <?php
    print drupal_render($form['preview_message']);
    print '</div>';
}

使用 PHP 打印您的 HTML

if (isset($form['preview_message'])) {

    print '<div class="slide-nav">
        <a href="#"><span id="prev"></span></a>
        <a href="#"><span id="next"></span></a>

    </div>';

    print drupal_render($form['preview_message']);
    print '</div>';
}

使用输出缓冲区存储您的 HTML 并使用 PHP 进行打印

if (isset($form['preview_message'])) {

    ob_start();
    ?>
    <div class="slide-nav">
        <a href="#"><span id="prev"></span></a>
        <a href="#"><span id="next"></span></a>

    </div>
    <?php
    print ob_get_clean();

    print drupal_render($form['preview_message']);
    print '</div>';
}

第一个选项最适合你

您选择的选项取决于您的编码风格,我个人更喜欢在 PHP 之外打印 HTML,因为我认为在进行更改时它更具可读性,但如果您重用 HTML,则使用输出缓冲区有其优势在多个地方(如果您将其存储为变量而不是打印)

【讨论】:

    【解决方案2】:
     if (isset($form['preview_message'])) {
       ?>
        <div class="slide-nav">
            <a href="#"><span id="prev"></span></a>
            <a href="#"><span id="next"></span></a>
    
        </div>
       <?php
    print drupal_render($form['preview_message']);
    print '</div>';
    }
    

    如果是,请标记为答案,谢谢。

    【讨论】:

      【解决方案3】:

      嗯,您正在使用 print 打印结尾,也许您也应该尝试在我们脚本中的其他 html 输出中使用它?

      【讨论】:

        【解决方案4】:

        或者只是再次使用“打印”或“回声”:

        echo '
            <div class="slide-nav">
                <a href="#"><span id="prev"></span></a>
                <a href="#"><span id="next"></span></a>
        
            </div>';
        echo drupal_render($form['preview_message']);
        echo  '</div>';
        

        【讨论】:

          猜你喜欢
          • 2019-08-01
          • 1970-01-01
          • 2013-06-24
          • 1970-01-01
          • 1970-01-01
          • 2017-10-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多