English 中文(简体)
PHP 保持超文本清洁
原标题:PHP Keeping HTML Clean
  • 时间:2010-01-26 00:28:54
  •  标签:
  • php
  • html

大约一年前,我一直在与加拿大合作,终于开始在我对欧佩组织的理解方面取得了一些进展。 因此,现在,我写的是一米,寻找最清洁的方法,把我的PHP投入我的超文本。 我基本上写了几个类别,产出我数据库中的数据。

例如,我举出一个“用户”类别的例子。

<h1> The <?php $user->getUserNameByIndex($index) ?> is not online </h1>

这是巨大的。 令我惊讶的是,如果我有一系列的插图,我需要回来,那么我需要把更多的购买力平价写到我的超文本中,使我的产出页像另一个PHP的文字。

例如:

<span> His likes are:<br> <?php foreach($user->likes as $like){ if($like != foo){echo $like .  <br>  }} ?>

对我来说,这似乎不清,但如果我把产出写到分类方法中,我会放弃我的一些风格控制。 我不禁要问,在我这里是否有一个平衡。 或者,如果存在一种标准的方法处理你打算用超文本显示的阵列。 我希望这一点是有意义的,不是一个 question问题。 我如此操练地撰写了超文本,再次看上像超文本,在我守则中把购买力平价的足迹降到最低的任何方面,都是一种大的奖金。

感谢您的审议。

最佳回答

A good way to separate code from design is the Model-View-Controller (MVC) design pattern.
Specifically, in your case you are looking for a separation of model (data handling) and view (display).

公共卫生和社会福利部已经存在许多缺陷。 值得研究的几个方面是:

CodeIgniter
Kohona
Symfony
Zend

(如果你不反对使用排时语言作为排时语言,我可以建议查阅Tiny But Persistent。)

问题回答

你们总是能够使用一种更友好的超文本硬带。

<?php foreach($user->likes as $like) : 
    if($like != foo):
?>
    <?=$like?><br>

<?php 
    endif;
endforeach; ?>

Jascha,我被诱惑建造一个页级,用手法撰写你想在网址上做的一切,以便你能够写上:

/* at the top of the file somewhere... */
$page = new PageWriter();
....
<!-- in the html body -->
<p><?php $page->print_users_likes($user); ?></p>

当然,你可以在你现有的课堂上增加这种方法,或只是将这种方法作为普通方法,列入其中或要求。

这样做的理由纯粹是表面的,因此,你可以在你的html网页上看到正在发生的情况,而不是几个路面、算法等。

d 我建议研究是否包括并要求在实验室中履行职能——我利用这些职能去除并非某一页外的实验室。

鉴于PHP的性质,我发现像聪明超高技能这样的排时系统。 确实,在《任择议定书》和《html法典》之间不断打捞是令人迷惑的,难以阅读。

一种解决办法是,在插图中污染变数:

$all_likes=implode( <br /> ,$user_likes);
print "<span> His likes are:<br /> $all_likes</span>";

然而,如果你考虑将多种替代物纳入不同方位(例如多语文网站)的设想,那么更好的解决办法可能是使用[s]印本:

$template="<span> %s likes these:<br />$s</span>";
...
printf($template, getUserNameByIndex($index), implode( <br /> ,$user_likes));

(BTW:其中无一与联络处具体有关)

如果你想要一种通用的方法来处理将一套借方价值纳入这样一个模板的问题,那么你可以做些什么:

print render("<span>$s likes %s</span>",array($username, $user_likes));

function render()
{
   $args=func_get_args();
   foreach ($args as $key=>$val) {
      if ($key && is_array($val)) {
         $args[$key]=flatten($val);
      }
   }
   return call_user_func_array( sprintf ,$args);
}

function flatten($inp)
{
   // there s probably a smarter way of doing this with 
   // the array fns
   $out=  ;
   $join=  ;
   foreach ($inp as $val) {
      $out.=$join;
      if (is_array($val)) {
         $out.=flatten($val);
      } else {
         $out.=$val;
      }
      $join="<br />
";
   }
   return $out;
}

HTH

C. 出席情况





相关问题
CSS working only in Firefox

I am trying to create a search text-field like on the Apple website. The HTML looks like this: <div class="frm-search"> <div> <input class="btn" type="image" src="http://www....

image changed but appears the same in browser

I m writing a php script to crop an image. The script overwrites the old image with the new one, but when I reload the page (which is supposed to pickup the new image) I still see the old one. ...

Firefox background image horizontal centering oddity

I am building some basic HTML code for a CMS. One of the page-related options in the CMS is "background image" and "stretch page width / height to background image width / height." so that with large ...

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!

热门标签