在PHP代码中生成多个Div

时间:2015-02-08 00:15:52

标签: php html tags escaping heredoc

目前我正在尝试遍历一个目录,抓取所有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元素的方法。

4 个答案:

答案 0 :(得分:3)

您只需关闭<?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
          }
?>   

答案 1 :(得分:2)

<?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 :(得分:1)

如我的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将使您成为更好的开发人员;也更有价值。

答案 3 :(得分:1)

尝试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;
      }
?>