Table des matières
{PAGETITLE}
{PAGE_TITLE}
Maison php教程 php手册 PHP3 之 FastTemplate

PHP3 之 FastTemplate

Jun 21, 2016 am 09:10 AM
gt lt quot

当你在建立一个站点的时候,可能不得不面对以下现实:
站点需要一名程序员来设计程序和一名网站设计者来组织页面。那么,是否有使两者很好的结合起来的方法呢?

有的,就是使用模板(FastTemplate:这个程序在本站的“程序和代码”中可以找到),这将会使你的工作更加轻松。

下面解释一下使用模板的好处:

1、在很短的时间内可以替换整个站点的外观
2、使程序员可以抽象编程,而无须接触HTML代码
3、速度非常之快
4、可以重复利用以前的模板

模板的来历:FastTemplate来自于同名的Perl软件包(在CPAN上可以找到)。 它被移植到了PHP3平台上。你只需要一个基础类文件class.FastTemplate.php3

先解释一下使用模板和使用echo或print命令建立html页面的区别,echo和 print在编写短小的脚本时显得非常实用,但是做出来的脚本的组织性和可定制性不好,修改起来颇废工夫,模板在编写支持多国语种的站点时的效率则要高的多,如用echo和print可以想象工作量之大。

不用担心,熟练使用FastTemplate会占去你一部分时间,但是这些时间会在你 以后的工作中弥补回来,尤其是大工程时。

那么,怎么使用FastTemplate呢?

第一步,只需使用函数,其中path指向template目录所在的路径。这句函数建立了一个$tpl对象,以后可以对它指定参数,进行处理或用来建立各种页面等等。

FastTemplate是建立在这么一种理论基础之上的,即假定一个web页是由许多小的部分组成的。举例来说,如WEB页细分为TITLE、PAGE、FOOT等等。整个页被赋予一个变量名,每一个小部分又被赋予一个变量名,最小的不可分割的部分通常就是字符串了,它也被赋予一个变量名。具体处理的时候,是一层层的包含关系。被包含部分在上一层中以宏{NAME}的形式出现。最后经过一层层的向上输出,得到完整的页面。

那么最底层的向字符串赋值的函数是什么呢,就是:

assign(NAME, "text"); ?>

通过这个功能,FastTemplate将字符串text赋予了变量NAME,以后上一层就可替换宏{NAME}的内容为text。

例如:

$tpl->assign(NAME, "me");

这就将变量NAME赋值了字符串"me"。

第二步,$tpl需要知道其所调用的所有模板文件,即各个小部分。这个功能由define一个数组实现:

define(); ?>

例如:

define(array(foo => "foo.tpl", bar => "bar.tpl")); ?>

这说明总共包括了两个模板文件:foo.tpl和bar.tpl,并给它们指定了名字foo和bar。

有了第一节的知识以后,你现在是否想试一试将模板文件中所包含的宏
{MACROS}部分按照自己定义的变量替换呢?使用以下的命令即可实现:


$tpl->parse(PAGECONTENT, "foo");

?>

这条命令的具体意义是:

我们首先已经用assign定义了FOO模板中包含的若干宏变量,然后根据这些变量对模板文件FOO进行替换处理,并将替换后的模板文件赋予另一个变量名PAGECONTENT。

完整如下:


$tpl->assign(NAME, "me");
$tpl->parse(PAGECONTENT, "foo");

?>

当然,我们还没有作完,因为bar模板文件才是WEB的主输出部分,BAR模板包含着FOO模板,BAR中还包含着宏变量{PAGETITLE}和{PAGECONTENT}等待处理,PAGECONTENT经过对FOO的处理已经得到,PAGETITLE还未指定,所以还要还要指定PAGETITLE,并调用函数

parse(MAIN, "bar"); ?>

进行处理,并将处理后的结果赋予变量MAIN。

如下:


$tpl->assign(PAGETITLE, "FooBar test");
$tpl->parse(MAIN, "bar");

?>

很简单吧,最后我们只需输出页面即可:


$tpl->FastPrint(MAIN);

?>

下面就是foo.tpl,bar.tpl与最终的demo.php3文件。
请大家仔细琢磨琢磨:

-------------------------------------------------------------
foo.tpl


This does not do anything obvious. Please look at {NAME}.

-------------------------------------------------------------
bar.tpl



Feature world - {PAGETITLE}

{PAGETITLE}


{PAGECONTENT}



------------------------------------------------------------
demo.php3


include "class.FastTemplate.php3";

$tpl = new FastTemplate( ".");
$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl"));

$tpl->assign(NAME, "me");
$tpl->parse(PAGECONTENT, "foo");

$tpl->assign(PAGETITLE, "Welcome!");
$tpl->parse(MAIN, "bar");

$tpl->FastPrint(MAIN);

?>
------------------------------------------------------------

编制一个表格的例子:

经过以上的阐述,大家是否已经明白一点了。
下面是一个处理表格的例子,首先我们再学一些新知识。

当我们当处理完foo模板后,并赋予了变量TPL1,我们可以将bar模板的内容处理后追加进TPL1中,这样就不必定义过多变量,也易于理解,例处理完页面的title后将content部分追加进去,最后将foot追加,生成完整一个页面再输出。这条命令就是:
parse(TPL1, ".bar"); ?>
其中的.表示追加。

如下:


# 处理模板foo,并赋予变量TPL1
$tpl->parse(TPL1, "foo");

# 处理模板bar,并追加进变量TPL1
$tpl->parse(TPL1, ".bar");

?>

下面是一个完整的表格例子,大家好好揣摸揣摸

page.tpl


Feature world - {PAGE_TITLE}

{PAGE_TITLE}


{PAGE_CONTENT}



table.tpl



{TABLE_ROWS}
name size


table_row.tpl


{FILENAME}
{FILESIZE}


yad.php3


include "class.FastTemplate.php3";

function InitializeTemplates() {
global $tpl;

$tpl = new FastTemplate( ".");
$tpl->define(
array(
page => "page.tpl",
table => "table.tpl",
table_row => "table_row.tpl"
)
);
}

function ReadCurrentDirectory() {
global $tpl;

$handle = opendir( ".");
while($filename = readdir($handle)) {
$tpl->assign(FILENAME, $filename);
$tpl->assign(FILESIZE, filesize($filename));
$tpl->parse(TABLE_ROWS, ".table_row");
}
closedir($handle);
$tpl->parse(PAGE_CONTENT, "table");
}

function PrintPage($title) {
global $tpl;

$tpl->assign(PAGE_TITLE, $title);
$tpl->parse(FINAL, "page");
$tpl->FastPrint(FINAL);
}

InitializeTemplates();
ReadCurrentDirectory();
Printpage( "Yet Another Demo");

?>

关于速度的最后一点讨论:

看完以上的例子,你会说“太棒了!漂亮,但是,速度怎么样呢?”

没问题,你的站点会变得很快。简单的说:因为你是一个程序员,你应该关注于程序代码的设计,代码应该更加有效率,应容易修改和容易理解。使用FastTemplate可以可以帮助你做到这一点,所以它使你的工作更加轻松一些。

如果你想替代一个已经建好的Web站点,我们建议使用regex(替换表达式)来替换,实际上FastTemplate使用的就是regex 来替换模板中的宏。



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Dec 29, 2023 pm 02:27 PM

De nombreux utilisateurs choisiront la marque Huawei lors du choix des montres intelligentes. Parmi eux, les Huawei GT3pro et GT4 sont des choix très populaires. De nombreux utilisateurs sont curieux de connaître la différence entre Huawei GT3pro et GT4. Quelles sont les différences entre Huawei GT3pro et GT4 ? 1. Apparence GT4 : 46 mm et 41 mm, le matériau est un miroir en verre + un corps en acier inoxydable + une coque arrière en fibre haute résolution. GT3pro : 46,6 mm et 42,9 mm, le matériau est du verre saphir + corps en titane/corps en céramique + coque arrière en céramique 2. GT4 sain : en utilisant le dernier algorithme Huawei Truseen5.5+, les résultats seront plus précis. GT3pro : ajout d'un électrocardiogramme ECG, d'un vaisseau sanguin et de la sécurité

Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Aug 24, 2023 am 09:48 AM

Pourquoi l'outil Snipping ne fonctionne pas sous Windows 11 Comprendre la cause première du problème peut aider à trouver la bonne solution. Voici les principales raisons pour lesquelles l'outil de capture peut ne pas fonctionner correctement : L'assistant de mise au point est activé : cela empêche l'ouverture de l'outil de capture. Application corrompue : si l'outil de capture plante au lancement, il est peut-être corrompu. Pilotes graphiques obsolètes : des pilotes incompatibles peuvent interférer avec l'outil de capture. Interférence provenant d'autres applications : d'autres applications en cours d'exécution peuvent entrer en conflit avec l'outil de capture. Le certificat a expiré : une erreur lors du processus de mise à niveau peut provoquer ce problème. Solution simple. Celles-ci conviennent à la plupart des utilisateurs et ne nécessitent aucune connaissance technique particulière. 1. Mettez à jour les applications Windows et Microsoft Store

Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone Jul 29, 2023 am 08:22 AM

Partie 1 : étapes de dépannage initiales Vérification de l'état du système Apple : avant d'aborder des solutions complexes, commençons par les bases. Le problème ne vient peut-être pas de votre appareil ; les serveurs Apple sont peut-être en panne. Visitez la page État du système d'Apple pour voir si l'AppStore fonctionne correctement. S'il y a un problème, tout ce que vous pouvez faire est d'attendre qu'Apple le résolve. Vérifiez votre connexion Internet : assurez-vous que vous disposez d'une connexion Internet stable, car le problème "Impossible de se connecter à l'AppStore" peut parfois être attribué à une mauvaise connexion. Essayez de basculer entre le Wi-Fi et les données mobiles ou de réinitialiser les paramètres réseau (Général > Réinitialiser > Réinitialiser les paramètres réseau > Paramètres). Mettez à jour votre version iOS :

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Watch4pro est-il meilleur ou gt ? Watch4pro est-il meilleur ou gt ? Sep 26, 2023 pm 02:45 PM

Watch4pro et gt ont chacun des fonctionnalités et des scénarios applicables différents. Si vous vous concentrez sur des fonctions complètes, des performances élevées et une apparence élégante, et que vous êtes prêt à supporter un prix plus élevé, alors Watch 4 Pro peut être plus approprié. Si vous n’avez pas d’exigences fonctionnelles élevées et que vous accordez plus d’attention à la durée de vie de la batterie et à un prix raisonnable, la série GT peut être plus adaptée. Le choix final doit être décidé en fonction des besoins personnels, du budget et des préférences. Il est recommandé d'examiner attentivement vos propres besoins avant d'acheter et de vous référer aux critiques et aux comparaisons des différents produits pour faire un choix plus éclairé.

Comment optimiser la durée de vie de la batterie de l'iPad avec iPadOS 17.4 Comment optimiser la durée de vie de la batterie de l'iPad avec iPadOS 17.4 Mar 21, 2024 pm 10:31 PM

Comment optimiser la durée de vie de la batterie de l'iPad avec iPadOS 17.4 L'extension de la durée de vie de la batterie est la clé de l'expérience des appareils mobiles, et l'iPad en est un bon exemple. Si vous avez l'impression que la batterie de votre iPad se décharge trop rapidement, ne vous inquiétez pas, il existe un certain nombre d'astuces et d'ajustements dans iPadOS 17.4 qui peuvent prolonger considérablement la durée de fonctionnement de votre appareil. L'objectif de ce guide détaillé n'est pas seulement de fournir des informations, mais aussi de changer la façon dont vous utilisez votre iPad, d'améliorer la gestion globale de votre batterie et de garantir que vous pouvez compter sur votre appareil plus longtemps sans avoir à le charger. En adoptant les pratiques décrites ici, vous faites un pas vers une utilisation plus efficace et plus consciente de la technologie, adaptée à vos besoins individuels et à vos modèles d'utilisation. Identifier les grands consommateurs d’énergie

Microsoft déploie la version Windows 11 23H2 sur le canal de prévisualisation des versions avec Copilot Microsoft déploie la version Windows 11 23H2 sur le canal de prévisualisation des versions avec Copilot Sep 28, 2023 pm 07:17 PM

Tout le monde attend avec impatience la version actuelle de Windows 1123H2. En fait, Microsoft vient de lancer des mises à jour de l'aperçu de la version, qui est le canal le plus proche avant la phase de sortie officielle. Connu sous le nom de Build 22631, Microsoft annonce le déploiement de la nouvelle application de chat renommée, des widgets Phone Links et Play Together qui ont été testés sur d'autres canaux internes au cours des derniers mois. "Cette nouvelle mise à jour aura la même branche de maintenance et la même base de code que Windows 11 version 22H2 et sera cumulative avec toutes les fonctionnalités nouvellement annoncées, y compris Copilot dans Windows (aperçu)", promet Microsoft. Les responsables de Redmond plus loin

Guan Zeyuanjiang Shuying expérimente le Huawei MateBook GT 14 : la combinaison parfaite de technologie et d'art Guan Zeyuanjiang Shuying expérimente le Huawei MateBook GT 14 : la combinaison parfaite de technologie et d'art Aug 10, 2024 pm 09:51 PM

Le 8 août, Huawei Terminal a officiellement lancé le Huawei MateBook GT14 "Super Starlight Show". Le célèbre acteur Jiang Shuying et le commentateur officiel de la League of Legends Professional League Guan Zeyuan étaient des invités dans la salle de diffusion en direct pour découvrir personnellement le Huawei MateBook GT14, le dernier ordinateur portable de Huawei. Lors de la diffusion en direct, Jiang Shuying et Guan Zeyuan n'ont pas tari d'éloges sur le Huawei MateBook GT14. CNMO a remarqué que lors de la diffusion en direct, Jiang Shuying, Guan Zeyuan et le président de la gamme de produits PC de Huawei ont été témoins du démontage du Huawei MateBook GT14. On constate que le design interne du Huawei MateBook GT14 est très soigné et adopte un design de carte mère haute densité. La carte mère est également partiellement enfoncée pour se distancier du clavier. celui-ci

See all articles