1

我总是对这两个 php 代码有问题。两者都可以完美运行并且没有问题,但我想问你们什么是行业标准。这样用php冲掉html可以吗。

    foreach($items as $item){

echo '<div class="well">
          <div class="row-fluid">
             <div class="span3">
               <img src="' . $item[0] . '"> 
                 <ul id="info">
                  <li>Author : '.$item[1].'</li>
                  <li>Release Date: '.$item[2].'</li>
                </ul>
               </div>
        <div class="span9">
            <h3>' . $item[3] . ' by ' . $item[1] . '</h3>
            <p>' . $item[4] . '</p>
        </div>
       </div>
    </div>
  ';

}

另一种方法是仅回显 json 值

foreach($items as $item){

jsonencode($item);

}

在此之后,我将不得不使用模板引擎解析到浏览器中,并使用 Tempojs 或 Mustache 解析它们。

所以第二种方法是更简洁的代码,但是在没有模板引擎的情况下解析 DOM 会很混乱,第一种方法在所有浏览器和移动设备上都会工作得更好。

所以请给我一个建议,我应该使用什么以及哪些代码符合行业标准。

4

2 回答 2

3

没有“行业标准”代码之类的东西。PHP 和 JavaScript 是一种通用语言,开发人员可以用它们做任何事情。然而,多年来,出现了常见的模式和方法。这就是设计模式之类的东西出现的地方。

针对您的问题,您只想传递数据,根本不想传递任何与模板/显示相关的内容。当你这样做时,你创建了更大的 HTTP 请求,并且你也在对最终输出做出假设。

有一个将数据作为数组或对象返回的方法,然后如果使用 PHP 将其传递给带有 PHP 标记的 HTML 模板;或者如果通过 JavaScript 请求上述的 Mustache 模板。

于 2013-07-17T18:52:25.923 回答
2

而不是回显一个长的连接字符串,标准的 php 模板标签是首选:例如:

<?php //do stuff ?> or <?= //stuff to be echoed ?>

这样做会将您的第一个代码块变成:

<?php foreach($items as $item): ?>

    <div class="well">
      <div class="row-fluid">
         <div class="span3">
           <img src="<?=$item[0]?>"> 
           <ul id="info">
             <li>Author : <?=$item[1]?></li>
             <li>Release Date: <?=$item[2]?></li>
           </ul>
         </div>
         <div class="span9">
           <h3><?=$item[3]?> by <?=$item[1]?></h3>
           <p><?=$item[4]?></p>
        </div>
      </div>
    </div>

<?php endforeach; ?>
于 2013-07-17T18:48:13.747 回答