【问题标题】:Generate Multiple Divs within php code在 php 代码中生成多个 div
【发布时间】:2015-04-07 23:18:00
【问题描述】:

目前我正在尝试遍历一个获取所有 14 个文件名的目录并使用这些文件名生成一些 html。我遇到了一些在 PHP 中创建 HTML 元素的问题,现在我只是想生成一个 HTML div,其中包含一个图像和 14 次以下的一行文本。

我尝试在 HTML 元素之前和之后放置空的 php 标记,这不起作用,因为 PHP 不允许在另一个 php 元素中使用 php 元素。

<?php   
$dir = "classes/1961/*";
     foreach(glob($dir) as $file)
          {
             <?php 
             ?>
                  <div class="cell-1-9">
                       <img src="images/image.jpg">
                       <p>Dylan Miller</p>
                  </div>
             <?php
             ?>   
          }
?>   

我需要另一种在 PHP 中生成 HTML 元素的方法。

【问题讨论】:

  • 去掉循环内的起始标签后的输出是什么?

标签: php html tags escaping heredoc


【解决方案1】:
<?php   
$dir = "classes/1961/*";
 foreach(glob($dir) as $file)
      { 
        ?>
              <div class="cell-1-9">
                   <img src="images/image.jpg">
                   <p>Dylan Miller</p>
              </div>
         <?php   
      }
?>   

【讨论】:

    【解决方案2】:

    您只需关闭&lt;?php 标记即可恢复为html:

    <?php   
    $dir = "classes/1961/*";
         foreach(glob($dir) as $file)
              {
                 ?>
                      <div class="cell-1-9">
                           <img src="<?php echo $file ?>">
                           <p>Dylan Miller</p>
                      </div>
                  <?php
              }
    ?>   
    

    【讨论】:

    • 你在
      之后忘记打开php了
    【解决方案3】:

    如我的 MVC 项目 PHP-One 中的示例所示,您可以使用所谓的 HEREDOC 语法执行类似的操作:

    <?php
    foreach($Model as $movie)
    {
        echo <<<HTML
            <li class="list-group-item">
                <strong>{$movie->Title}</strong> ({$movie->Rating}) - {$movie->ReleaseDate}
            </li>
    HTML;
    }
    ?>
    

    适应您的代码,尝试类似:

    <?php   
    $dir = "classes/1961/*";
     foreach(glob($dir) as $file)
          {
             echo <<<HTML
                  <div class="cell-1-9">
                       <img src="{$file}">
                       <p>{$file}</p>
                  </div>
    HTML;
          }
    ?>   
    

    参考。 https://github.com/DominicArchual/Php-One#define-your-view

    脚注:学习 MVC 将使您成为更好的开发人员;也更有价值。

    【讨论】:

    • 您的 2nd heredoc 将失败。标识符之前和/或之后不应有任何内容。它会抛出一个解析错误。查看php.net/manual/en/…下的警告
    • 谢谢,弗雷德。详细说明 Fred 的评论;结束分隔符 HTML; 前后不得有任何字符(甚至空格)
    【解决方案4】:

    试试 HEREDOC 语法。 我正在粘贴 user1477388 的更正代码:结束 HTML;不得缩进。

    <?php   
    $dir = "classes/1961/*";
     foreach(glob($dir) as $file)
          {
             echo <<<HTML
                  <div class="cell-1-9">
                       <img src="{$file}">
                       <p>{$file}</p>
                  </div>
    HTML;
          }
    ?>  
    

    【讨论】:

      猜你喜欢
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多