Smarty の 30 分のクイック スタート チュートリアル、すぐに Smarty を始めましょう
この記事では、smarty をすぐに使い始める方法について説明しており、読者は 30 分以内に Smarty の使い方をすぐにマスターできます。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです
1. Smarty のプログラミング部分:
smarty のテンプレート設計セクションでは、smarty のテンプレートでの一般的な設定をいくつか紹介しました。このセクションでは主に、smarty でプログラム設計を開始する方法を紹介します。 Smarty ファイルをダウンロードしてサイトに追加します。
index.phpのコードは次のとおりです:
*
* @version $Id:index.php
* @パッケージ
* @著者 www.jb51.net
* @action サンプルプログラムを表示します
*/
include_once("./Smarty/Smarty.class.php") //smarty クラス ファイルをインクルードします
$smarty = new Smarty(); //smarty インスタンス オブジェクト $smarty を作成します
$smarty->templates("./templates") //テンプレートディレクトリを設定します
;
$smarty->templates_c("./templates_c") //コンパイルディレクトリを設定します
$smarty->cache("./cache") //キャッシュディレクトリ
$smarty->cache_lifetime = 0 //キャッシュ時間
;
$smarty->caching = true //キャッシュメソッド
$smarty->left_delimiter = "{#";
$smarty->right_delimiter = "#}";
$smarty->assign("name", "zaocha") //テンプレート変数を置き換えます
$smarty->display("index.htm"); // ./templates にあるindex.htm テンプレートをコンパイルして表示します
?>
2. Smarty プログラムについて説明します
smarty のプログラム部分が実際には PHP 言語仕様に準拠したコードのセットであることがわかります。順番に説明しましょう。
1:/**/ステートメント:含まれる部分はプログラムのヘッダーコメントです。主な内容は、プログラムの機能、著作権、作者、執筆時間などの簡単な紹介です。smarty ではこれは必要ありませんが、プログラムのスタイルからすると、これは良いスタイルです。
2: include_once ステートメント:
Web サイトにインストールされている Smarty ファイルが現在のファイルにインクルードされます。インクルードされるパスは正しく記述される必要があることに注意してください。
3:$smarty = 新しいSmarty():
この文は、オブジェクトの単純なインスタンス化である新しい Smarty オブジェクト $smarty を作成します。
4:$smarty->テンプレート(""):
この文は、tpl テンプレートを使用する場合の $smarty オブジェクトのパスを指定します。この文がない場合、Smarty のデフォルトのテンプレート パスは、実際にプログラムを作成するときにこれを指定する必要があります。文。これも優れたプログラミング スタイルです。
5:$smarty->templates_c(""):
この文は、$smarty オブジェクトがコンパイルされるディレクトリを指定します。テンプレート設計の章では、Smarty がコンパイルされたテンプレート言語であり、このディレクトリがテンプレートをコンパイルするディレクトリであることをすでに知っています。サイトが Linux サーバー上にある場合は、必ず確認してください
teamplates_c で定義されたディレクトリには、書き込み可能および読み取り可能なアクセス許可が設定されています。同じ理由で、そのコンパイル ディレクトリは現在のディレクトリにあります。
6: $smarty->left_delimiter および $smarty->right_delimiter:
テンプレート変数を検索するときの左右の区切り文字を示します。デフォルトでは「{」と「}」ですが、実際にはテンプレート内で <script> を使用する必要があるため、スクリプト内の関数定義では必然的に {} を使用することになりますが、独自の解決策はあります。習慣を再定義します<p> は、「{#」と「#}」、「<!--{」と「}-->」、またはその他の識別子です。ここで左と右の区切り文字が定義されている場合は、対応して、テンプレート ファイル内で次のようになります。各変数は定義と同じ記号を使用する必要があります。たとえば、ここでは「<{」と「}>」として指定され、HTML テンプレートでも使用されます。 <p>それに応じて、プログラムがテンプレート変数を正しく見つけられるように、{$name} を <{$name}> に変更します。 <p>7:$smarty->cache("./cache"): <p>出力テンプレート ファイルをキャッシュする場所を Smarty に指示します。前回の記事で、Smarty の最大の利点はキャッシュできることであることがわかりました。キャッシュを設定するディレクトリは次のとおりです。デフォルトでは、これは現在のディレクトリ内のキャッシュ ディレクトリであり、Linux システムの templates_c ディレクトリに相当します。 読み書き可能であることを確認したいと考えています。 <p> 8:$smarty->cache_lifetime = 60 * 60 * 24:<p> キャッシュの有効時間は秒単位で計算されます。最初のキャッシュ時間が経過したときに Smarty キャッシュ変数が true に設定されている場合、キャッシュは再構築されます。値が -1 の場合は、確立されたキャッシュが期限切れにならないことを意味し、0 の場合は、プログラムが実行されるたびにキャッシュがキャッシュされることを意味します<p> 保存は常に再作成されます。上記の設定は、cache_lifetime を 1 日に設定することを意味します。 <p> 9:$smarty->キャッシング = 1:<p> この属性は、Smarty にキャッシュするかどうか、およびキャッシュする方法を指示します。 3 つの値を取ることができます。0: Smarty のデフォルト値で、テンプレートがキャッシュされないことを示します。1: Smarty が現在定義されているcache_lifetime を使用してキャッシュを終了するかどうかを決定することを示します。 <p>Smarty は、キャッシュが作成されるときに、cache_lifetime 値を使用します。キャッシュするかどうかを示すには、true と false を使用するのが一般的です。 <p>10:$smarty->assign("名前", "ザオチャ"): <p>この数値のプロトタイプは assign(string varname,mixed var) です。varname はテンプレートで使用されるテンプレート変数です。var は、テンプレート変数によって置き換えられる変数名を指します。その 2 番目のプロトタイプは assign(mixed var) です。次の例では、このメンバー関数の使用方法を詳しく説明します。assign は、Smarty のコア関数の 1 つであり、テンプレート変数のすべての置換に使用する必要があります。 <p>11:$smarty->display("index.tpl"): <p>この関数のプロトタイプは display(string varname) で、テンプレートを表示するために使用されます。簡単に言うと、分析および処理されたテンプレートが表示されます。ここでテンプレート ファイルへのパスを追加する必要はありません。$smarty->templates(string path) でそのパスをすでに定義しているだけです。 )。 <p> プログラムが実行された後、現在のディレクトリにある templates_c ディレクトリとキャッシュ ディレクトリを開くと、以下にいくつかの %% ディレクトリがあることがわかります。これらのディレクトリは Smarty のコンパイル ディレクトリとキャッシュ ディレクトリです。これらはプログラムによって自動的に生成されます。これらのディレクトリを直接編集しないでください。 <p>Smarty プログラムでよく使用されるいくつかの基本要素を簡単に紹介しました。次の例では、それらが複数回使用されることがわかります。 <p>3. テンプレートの説明<p> <p> 次に、section ループ ブロックと foreach ループ ブロックを紹介します。本来はテンプレート部分に属するものですが、smarty の本質であり、smarty プログラミング部分と非常に密接に関係しているため、個別に説明します。このセクション。 <strong><p>1: foreach: 単純な配列をループするために使用されます。その定義形式は次のとおりです。 <p><div class="codetitle"><span>コードをコピーします<U> コードは次のとおりです:</script>
{/foreach}
テンプレートファイル:
example.htm ページは次のとおりです:
ニュース番号: {#$new.id#}
ニュースコンテンツ: {#$new.title#}
{#foreachelse#}
データベースにニュース出力がありません!
{#/foreach#}
{foreach from=$newsArray item=newsID}
ニュース ID: {$newsID}
ニュース コンテンツ: {$newsTitle}
{foreachelse}
申し訳ありませんが、データベースにはニュース出力がありません!
{/foreach}
これはデータが表示されないというエラーであり、この記事では修正されています。
プログラムファイル:example.phpは以下の通りです:
* ファイル名:example.php
* 機能: プログラム例2を表示
*********************************************/
include_once("./Smarty/Smarty.class.php"); $smarty = 新しい Smarty(); $smarty->templates("./templates"); $smarty->templates_c("./templates_c"); $smarty->cache("./cache"); $smarty->cache_lifetime = 0; $smarty->キャッシュ = true
; $smarty->left_delimiter = "{#"; $smarty->right_delimiter = "#}"; $array[] = array("ニュースID"=>1, "ニュースタイトル"=>"ニュースNo.1"); $array[] = array("ニュースID"=>2, "ニュースタイトル"=>"ニュース第2弾"); $array[] = array("ニュースID"=>3, "ニュースタイトル"=>"ニュース第3号"); $array[] = array("ニュースID"=>4, "ニュースタイトル"=>"ニュース第4号"); $array[] = array("ニュースID"=>5, "ニュースタイトル"=>"ニュース第5号"); $array[] = array("ニュースID"=>6, "ニュースタイトル"=>"ニュース第6号"); //これは 2 次元の連想配列です
$smarty->assign("newsArray", $array); // ./templates の下にあるindex.htm テンプレートをコンパイルして表示します
$smarty->display("example.htm"); ?>
入力結果: example.php の出力は次のとおりです:
コードをコピーします
コードは次のとおりです:
ここに配列が出力されます:
ニュース番号: 1
ニュース内容:ニュースNo.1
ニュース番号: 2
ニュース番号: 3
ニュース内容:ニュースNo.5
ニュース番号: 6
ニュース内容:ニュースNo.6
foreach は foreachelse と一致させることもできます。foreach に渡される配列が null の場合にプログラムによって実行される操作を指定するには、foreachelse を使用します。具体的な使用方法については、マニュアルを参照してください。
2.セクション:
セクションは、foreach の欠点を解決するために作成されました。foreach と同様に、テンプレート内のループ ブロックを設計するために使用されます。そのため、私は foreach を使用する代わりに、これを使用することに慣れています。 foreach のプログラム、基本的なプロトタイプは次のとおりです。 コードをコピーします コードは次のとおりです:{セクション名 = name ループ = $varName[, start = $start, step = $step, max = $max, show = true]}
パラメータは次のように説明されます:
name: セクションの名前。$
を追加する必要はありません$loop: ループする変数。プログラム内でこの変数を操作するには assign を使用します。
$start: ループを開始する添字。デフォルトではループの添字は 0 から始まります。
$step: 各ループ中の添え字の増分$max: 最大ループ添字
$show: ブール型、このブロックを表示するかどうかを決定します、デフォルトは true です
ここで説明が必要な名詞があります:
{section} ブロックの属性値は次のとおりです:
1. インデックス: 上で紹介した「ループ インデックス」、デフォルトは 0 です
2.index_prev: 現在のインデックスの前の値、デフォルトは -1 です
3.index_next: 現在のインデックスの次の値、デフォルトは 1 です
4. 最初: 最初のループですか
5. last: 最後のループかどうか
6. 反復: サイクル数
7. rownum: 現在の行番号、反復の別のエイリアス
8. ループ: セクションブロックの後のセクション内のループの数をカウントするために使用できる最後のループ番号
9. 合計: セクションブロック後のループの数をカウントするために使用できます
10. show: 関数の宣言に含まれており、セクションを表示するかどうかを決定するために使用されます
これらの属性は、テンプレート部分で使用したので、マニュアルを参照してください。
同様に、{section} を {sectionelse} と組み合わせて使用して、受信配列変数が空の場合のテンプレートの処理を示すこともできます。
現在の関数を実現するために、上記の例では {foreach} の代わりに {section} を使用しています。この例では、tpl プログラム ファイルに {foreach} を実装するためにのみ {section} を使用していることに注意してください。変更はなく、{sectionelse} 処理ブロックが追加されます:
example.tpl テンプレート ファイルは次のとおりです:
ニュース番号: {$News[loop].newsID}
ニュースのタイトル: {$News[loop].newsTitle}
{セクションその他}
申し訳ありませんが、ニュースはありません
{/セクション}
*
* ファイル名: example7.php
* 機能: プログラム例2を表示
************************************************/
include_once("./comm/Smarty.class.php");
$smarty = 新しい Smarty();
$smarty->templates("./templates");
$smarty->templates_c("./templates_c");
$smarty->cache("./cache");
$smarty->cache_lifetime = 0;
$smarty->キャッシュ = true;
$smarty->left_delimiter = "{";
$smarty->right_delimiter = "}";
$array[] = array("ニュースID"=>1, "ニュースタイトル"=>"ニュースNo.1");
$array[] = array("ニュースID"=>2, "ニュースタイトル"=>"ニュース第2弾");
$array[] = array("ニュースID"=>3, "ニュースタイトル"=>"ニュース第3号");
$array[] = array("ニュースID"=>4, "ニュースタイトル"=>"ニュース第4号");
$array[] = array("ニュースID"=>5, "ニュースタイトル"=>"ニュース第5号");
$array[] = array("ニュースID"=>6, "ニュースタイトル"=>"ニュース第6号");
$smarty->assign("newsArray", $array);
// ./templates にあるindex.tpl テンプレートをコンパイルして表示します
$smarty->display("example.tpl");
?>
ニュース内容:ニュースNo.1
ニュース番号: 2
ニュース内容:ニュースNo.2
ニュース番号: 3
ニュース内容:ニュースNo.3
ニュース番号: 4
ニュース内容:ニュースNo.4
ニュース番号: 5
ニュース内容:ニュースNo.5
ニュース番号: 6
ニュース内容:ニュースNo.6
ここでの {section} ブロックでの変数の名前の付け方は少しぎこちないように感じますが、問題ではありません。テンプレート変数の使用法を覚えておくだけで済みます。
$loopName[name].var で十分です。loopName はループで割り当てられる変数名、[name] は name で割り当てられる文字列、後者はプログラム配列に設定する値です。する。
この記事の Smarty プログラミングの学習ガイドはこれで終わりです。一般的なアプリケーションについては、この知識で十分です。さらに、Smarty の関連する実践的なアプリケーションも参照してください。これには、php の組み込み mysql ステートメント、phplib の DB クラス、ADODB、Pear の DB クラスなどが含まれます。興味のある友達は関連コンテンツに注目してください。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
まず、
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates_c/';
$smarty->cache_dir = './cache を使用して 3 つのディレクトリを設定します。 /'; そして、これら 3 つのディレクトリが存在し、パスが正しいことを確認してください。
次に、テンプレートの記述が間違っています
ニュース番号: {$newsID.newsID}
ニュース コンテンツ: {$ newsID.newsTitle}
開発中は SMARTY CACHE を有効にせず、$smarty->caching = false; を設定することをお勧めします。
1.index.htmには読み取り権限がありません。初心者の場合は、win
2でこの理由を削除する必要があります。テンプレート ファイルが存在しません、index.htm が存在しません、これはあなた自身が知っています、そのようなテンプレートを作成したはずです
3. テンプレートのパスが間違っています、これが核心です
$tpl = new Smarty; とすると、次のようになります。 echo $tpl-> ;template_dir; を印刷することをお勧めします
index.htm がこのディレクトリにあるかどうかを確認してください
http://www.bkjia.com/PHPjc/901287.html

Vue.js是一款流行的JavaScript前端框架,目前已经推出了最新的版本——Vue3,新版Vue在性能、体积以及开发体验上均有所提升,受到越来越多的开发者欢迎。本文将介绍如何使用Vue3制作一个简单的图片裁剪器。首先,我们需要创建一个Vue项目并安装所需的插件。可以使用VueCLI来创建项目,也可以手动搭建。这里我们以使用VueCLI的方式为例:#

Laravel入门教程:从零开始学习最流行的PHP框架引言:Laravel是当前最流行的PHP框架之一,它易于上手、功能强大且拥有活跃的开发社区。本文将带您从零开始学习Laravel框架,并提供一些实例代码,帮助您更好地理解和掌握这个强大的工具。第一步:安装Laravel在开始之前,您需要在计算机上安装Laravel框架。最简单的方法是通过Composer进

Go-zero是一款优秀的Go语言框架,它提供了一整套解决方案,包括RPC、缓存、定时任务等功能。事实上,使用go-zero建立一个高性能的服务非常简单,甚至可以在数小时内从入门到精通。本文旨在介绍使用go-zero框架构建高性能服务的过程,并帮助读者快速掌握该框架的核心概念。一、安装和配置在开始使用go-zero之前,我们需要安装它并配置一些必要的环境。1

快速入门:使用Go语言函数实现简单的数据可视化功能随着数据的快速增长和复杂性的提高,数据可视化成为了数据分析和数据表达的重要手段。在数据可视化中,我们需要使用合适的工具和技术来将数据转化为易读且易理解的图表或图形。Go语言作为一种高效且易于使用的编程语言,在数据科学领域也有着广泛的应用。本文将介绍如何使用Go语言函数来实现简单的数据可视化功能。我们将使用Go

随着科技的不断发展,人脸识别技术也越来越得到了广泛的应用。而在Web开发领域中,PHP是一种被广泛采用的技术,因此PHP中的人脸识别技术也备受关注。本文将介绍PHP中的人脸识别入门指南,帮助初学者快速掌握这一领域。一、什么是人脸识别技术人脸识别技术是一种基于计算机视觉技术的生物特征识别技术,其主要应用领域包括安防、金融、电商等。人脸识别技术的核心就是对人脸进

Beego是一个基于Go语言的开发框架,它提供了一套完整的Web开发工具链,包括路由、模板引擎、ORM等。如果你想快速入门Beego开发框架,以下是一些简单易懂的步骤和建议。第一步:安装Beego和Bee工具安装Beego和Bee工具是开始学习Beego的第一步。你可以在Beego官网上找到详细的安装步骤,也可以使用以下命令来安装:gogetgithub

Laravel是一个流行的PHP框架,它提供了许多工具和功能,以使开发Web应用程序变得更加轻松和快速。Laravel8已经发布,它带来了许多新的功能和改进。在本文中,我们将学习如何快速入门Laravel8。安装Laravel8要安装Laravel8,您需要满足以下要求:PHP>=7.3MySQL>=5.6或MariaDB>=10.

PHP摄像头调用教程:快速入门指南引言:在当今的数字时代,摄像头成为了人们生活中不可或缺的设备之一。在Web开发中,如何通过PHP调用摄像头,实现视频流的显示和处理,成为了很多开发者关注的问题。本文将为大家介绍如何快速入门使用PHP来调用摄像头。一、环境准备要使用PHP调用摄像头,我们需要准备以下环境:PHP:确保已经安装了PHP,并且安装了相应的扩展库,如


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
