PHPテンプレートエンジンSmartyの組み込み機能を詳しく解説、Smartyの機能を詳しく解説_PHPチュートリアル

WBOY
リリース: 2016-07-12 08:54:36
オリジナル
1108 人が閲覧しました

PHPテンプレートエンジンSmartyの組み込み関数を詳しく解説、smartyの機能を詳しく解説

この記事ではPHPテンプレートエンジンSmartyの組み込み関数を例を交えて解説しています。参考のために皆さんと共有してください。詳細は次のとおりです:

Smarty の組み込み関数: Smarty にはいくつかの組み込み関数が付属しており、ユーザーは組み込み関数と同じ名前のカスタム関数を作成したり、組み込み関数を変更したりすることはできません。 。

Smarty の組み込み関数を以下に説明し、例を示します:

例で使用されるSmartyテンプレートエンジン初期化ファイルinit.inc.phpとメインファイルindex.php

init.inc.php

リーリー

index.php

リーリー

1.キャプチャ

プロパティ タイプ 必要ですか デフォルト値 説明
名前 文字列 いいえ デフォルト データ収集エリア名
割り当てる 文字列 いいえ なし [テスト対象]変数名に割り当てられたデータ収集領域はどこですか

/tpl/index.tpl

リーリー

2、config_load

グローバルブール値いいえ ロードされた変数がグローバルに表示されるかどうかを示します。これは、scope=parent と同等です。 注: スコープ属性が指定されている場合、この属性を設定できますが、テンプレートは属性値を無視し、スコープ属性を基準として使用します。 config_load関数は設定ファイルから変数を読み込む関数です。config_load関数の使い方については以前の記事「PHPテンプレートエンジンSmartyのテンプレート変数での設定ファイルの使用例」を参照してください。

3.含む

プロパティ タイプ 必要ですか デフォルト値 説明
ファイル 文字列 はい なし インクルードする設定ファイルの名前
セクション 文字列 いいえ なし 設定ファイルに読み込む部分の名前
スコープ 文字列 いいえ 地元 データをロードするスコープ。値はローカル、親、またはグローバルである必要があります。変数のスコープが現在のテンプレートであることを示します。親は、変数のスコープが現在のテンプレートおよび現在のテンプレートの親テンプレートであることを示します。 (現在のテンプレートを呼び出すテンプレート) global は、この変数のスコープがすべてのテンプレートであることを示します。
いいえ
プロパティ タイプ 必要ですか デフォルト値 説明
ファイル 文字列 はい なし インクルードするテンプレートファイルの名前
割り当てる 文字列 いいえ なし この属性は、含めるテンプレートの出力を保存する変数を指定します
[変数...] [変数タイプ] いいえ 該当なし 含まれるテンプレートに渡されるローカルパラメータは、含まれるテンプレート内でのみ有効です

include 函数用于在当前模板中包含其它模板, 当前模板中的变量在被包含的模板中可用. 必须指定 file 属性,该属性指明模板资源的位置。如果设置了 assign 属性,该属性对应的变量名用于保存待包含模板的输出,这样待包含模板的输出就不会直接显示了。请看下面的示例:

/tpl/index.tpl

{include file="header.tpl"}
{* body of template goes here *}
{include file="footer.tpl"}

ログイン後にコピー

4、if,elseif,else

Smarty 中的 if 语句和 php 中的 if 语句一样灵活易用,并增加了几个特性以适宜模板引擎. if 必须于 /if 成对出现. 可以使用 else 和 elseif 子句。

可以使用以下条件修饰词:eq、ne、neq、gt、lt、lte、le、gte、ge、is even、is odd、is not even、is not odd、not、mod、div by、even by、odd by、==、!=、>、<、<=、>=. 使用这些修饰词时必须和变量或常量用空格格开。

下面对这些修饰符表示的意思进行说明:

条件修饰符 作用描述
eq ==
ne !=
neq !=
gt >
lt <
lte <=
le <=
gte >=
ge >=
is even 是否偶数
is odd 是否奇数
is not even 是否不是偶数
is not odd 是否不是奇数
not !=
mod 求模
div by 是否能被整除
even by 商是否是偶数
odd by 商是否是奇数
&&
||
() 括号改变优先级

5、ldelim 和 rdelim

用于输出分隔符,也就是大括号 "{" 和 "}". 模板引擎总是尝试解释大括号内的内容,因此如果需要输出大括号,请使用此方法。请看下面的示例:

/tpl/index.tpl

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ldelim 和 rdelim</title>
</head>
<body>
  <{ldelim}>funcname<{rdelim}> 是 Smarty 中的一个函数。
  <!-- 执行结果: <{funcname}> 是 Smarty 中的一个函数。 -->
</body>
</html>

ログイン後にコピー

6、literal

literal 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的 javascript 脚本. 当这些信息处于 {literal}{/literal} 标签中时,模板引擎将不分析它们,而直接显示,其实按照我的所有例子中的标签风格(因为在 init.inc.php 初始化文件中已经重新设置了左定界符和右定界符),而不是 Smarty 的默认风格,基本上不会产生这种情况。关于该函数的使用,请看下面的示例

/tpl/index.tpl

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>literal</title>
</head>
<body>
  <{literal}>
  <script language=javascript>
     <!--
       window.alert(new Date());
     -->
  </script>
  <{/literal}>
</body>
</html>

ログイン後にコピー

7、php

php 标签允许在模板中直接嵌入 php 脚本,此标签会把标签内部的内容当成 PHP 脚本进行解析执行。请看下面的示例

/tpl/index.tpl

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>php</title>
</head>
<body>
  <{php}>
    echo date("Y-m-d H:i:s");
  <{/php}>
  <!-- 执行结果: 2011-10-24 04:35:03 -->
</body>
</html>

ログイン後にコピー

8、strip

Web 开发者多次遇到空格和回车影响HTML输出的情形,为了得到特定的结果,因此你不得不在模板里运行所有的标签. 通常在难以理解或难以处理的模板中遇到此问题。Smarty 在显示前将除区任何位于 {strip}{/strip} 标记中数据的首尾空格和回车. 这样可以保证模板容易理解且不用担心多余的空格导致问题。

好了, Smarty 模板引擎中的内建函数先总结这么多,关于内建函数中两个最重要的函数(foreach,foreachelse、section,sectionelse)的使用,可参考前面一篇《PHP模板引擎Smarty内建函数foreach,foreachelse用法分析》

更多关于PHP相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

您可能感兴趣的文章:

  • PHP模板引擎Smarty内置变量调解器用法详解
  • PHP模板引擎Smarty自定义变量调解器用法
  • PHP模板引擎Smarty中的保留变量用法分析
  • PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
  • PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
  • PHP模板引擎Smarty中变量的使用方法示例
  • smarty模板引擎从php中获取数据的方法
  • ThinkPHP使用smarty模板引擎的方法
  • 在PHP模板引擎smarty生成随机数的方法和math函数详解
  • PHP模板引擎Smarty的缓存使用总结
  • php smarty模板引擎的6个小技巧
  • [PHP]模板引擎Smarty深入浅出介绍
  • PHP模板引擎Smarty内建函数section,sectionelse用法详解

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1119971.htmlTechArticlePHP模板引擎Smarty内建函数详解,smarty函数详解 本文实例讲述了PHP模板引擎Smarty内建函数。分享给大家供大家参考,具体如下: Smarty 的内建...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!