使用PHP显示HTML内容的最佳方式是什么

What is the best way to display HTML content using PHP?

本文关键字:最佳 方式 是什么 PHP 显示 HTML 使用      更新时间:2023-09-26

我有一个php函数,如下所示,它接收一个数组,该数组具有来自SQL查询的值(在另一个未显示的函数中)。在这种情况下,SQL查询返回一组文件名及其关联的图片名称。

// Take in an array of filters;
// each element is a dictionary of column name 
// to the value of that row from SQL query
function displayFilters($filters) {
    foreach($filters as $filter){
        //output images in img tags, with their appropriate classes
        echo "  <div class='w3-quarter'>
                    <div class='w3-card-2'>
                        <img src='images/".$filter['File_Name']."' style='width:100%'>
                            <div class='w3-container'>
                                <h4>".$filter['Filter_Name']."</h4>
                            </div>
                    </div>
                </div>";
    }
} 

现在,这工作得很好,并将正确地显示我想要的图像。然而,我一直必须修改这段代码,更改类、属性等等,如果我需要添加/修改div,我必须进入这个函数来更改所有内容。有没有比进入回声函数进行更改更好的方法呢?如果可能的话,我宁愿不使用Javascript,但如果这是唯一干净的方法,有人能给我指一种方法吗?

    <?php    function displayFilters($filters) {
            foreach($filters as $filter){ ?>
                //output images in img tags, with their appropriate classes
                <div class='w3-quarter'>
                            <div class='w3-card-2'>
                                <img src='images/<?=$filter['File_Name']>' style='width:100%'>
                                    <div class='w3-container'>
                                        <h4><?=$filter['Filter_Name']></h4>
                                    </div>
                            </div>
                        </div>
<?php
            }
        } ?>

我这样做似乎比学习一个新的模板引擎

更容易

使用PHP模板引擎


http://www.smarty.net/

Smarty是一款速度快、重量轻、内存占用小的产品。


http://twig.sensiolabs.org/(看起来非常像Dwoo)

Twig是一个用于PHP(快速、安全、灵活)的现代模板引擎


http://dwoo.org/(灵感来自Smarty)

Dwoo是一个模板系统,用于使创建网站更加容易和结构化。


http://platesphp.com/(灵感来自Twig)

Plates是一个本地PHP模板系统,它快速、易用、易于扩展。


http://phptal.org/

PHPTAL是ZPT工作的PHP实现。简而言之,PHPTAL是一个用于PHP的XML/XTML模板库。

我已经编写了如何检索查询以及如何在下面的代码中显示。你可以用这个。您也可以在表<tr>标记中使用image标记。

  $con=mysqli_connect('localhost','username','password','databasename');
  $sql="SELECT  `COL 1` ,  `COL 2` ,  `COL 3` ,  `COL 4` ,  `COL 5` ,  `COL 12` FROM  `TABLE` WHERE 1 ORDER BY  `COL 3`  ;";
  $result=mysqli_query($con,$sql);

<table style="width:100%"  >
 <tr>
 <th>Col1</th>
 <th>Clo2</th> 
 <th>Col3</th>
  </tr>
<?
while ($row=mysqli_fetch_row($result))
{
      echo "<tr><td>".$row[0]."</td><td>".$row[1]."'t".$row[2]."'t".$row[3]."'t".$row[4]."</td><td>".$row[5]."</td></tr>";  
 }
?>
     </table>