ホームページ バックエンド開発 PHPチュートリアル PHP での Smarty の使用パート 4: カスタム変数 Mediator_PHP チュートリアル

PHP での Smarty の使用パート 4: カスタム変数 Mediator_PHP チュートリアル

Jul 13, 2016 pm 05:46 PM
php smarty 使用 関数 変数 できる デバイス 存在する 対処する あなた 文章 持っている カスタマイズ

PHP には、テキストを処理するための関数が多数あり、その関数を通じて処理するテキストを処理し、Smarty テンプレート エンジンの assign() を呼び出して値を変数に割り当て、それを表示用のテンプレートに割り当てることができます。 。

Smarty の変数メディエーターは PHP のテキスト処理関数に似ていますが、Smarty では構文が異なり、パラメーターがある場合は、その直後に「|」を介してメディエーター関数名を追加する必要があります。 "。パラメータが 2 つある場合は、それらを加算するだけです。

形式: {$var|modifier1:"Parameter1":"Parameter2":Parameter3|modifier2|modifier3|...}

メディエーターを定義するファイルは Smarty に配置する必要があります。具体的なパスは libs/plugins/ です。ファイル名は Smarty 形式である必要があります modifier.moderatorname.php

以下は、Smarty でのカスタム変数メディエーターの使用例を示しています

プログラムのアイデア: 2 つの変数メディエーターを作成します。1 つはテキストを変換し、もう 1 つはテキストをインターセプトします。

init.inc.php (Smarty 初期化ファイル)

Define('ROOT_PATH', dirname(__FILE__)) // Web サイトのルート ディレクトリを設定します

require ROOT_PATH.'/libs/Smarty.class.php' //Smarty テンプレート エンジンをロードします

;

$_tpl = new Smarty() // インスタンス オブジェクトを作成します

$_tpl->template_dir = ROOT_PATH.'/tpl/' //テンプレートファイルのディレクトリを設定します

;

$_tpl->compile_dir = ROOT_PATH.'./com/' //コンパイル済みファイルのディレクトリを設定します

;

$_tpl->left_delimiter = '<{' //左区切り文字を設定します

;

$_tpl->right_delimiter = '}>' //正しい区切り文字を設定します

;

?>

Index.php(メインファイル)

定義('CONST_VAR', 'ABC');

require 'init.inc.php' //テンプレート初期化ファイルを導入します

;

グローバル $_tpl;

$_str = 'abcdEFGHigklmnOPQRSTuvwsYz' //文字列を定義します

;

$_tpl->assign('str',$_str); $_tpl->assign('str',$_str); // 文字列を str に代入します。

$_tpl->assign('str1',strto lower($_str)); //すべての文字列を小文字に変換し、str1 に代入します

$_tpl->assign('str2',strtoupper($_str)); //すべての文字列を大文字に変換し、str2 に代入します

$_tpl->assign('str3',ucfirst($_str)); //すべての文字列を大文字に変換し、str3 に割り当てます

$_tpl->assign('str4',substr($_str, 0,15).'...');//文字列の最初の 15 文字をインターセプトし、後続の文字を '...' に置き換えます。そしてstr4に代入します

$_tpl->assign('str5',strtoupper(substr($_str, 0,15)).'...'); //文字列の最初の 15 文字を切り取って大文字に変換し、' .. .' 代わりに str4 に割り当てます

$_tpl->display('index.tpl') //テンプレートを紹介します

?>

tpl/index.tpl

Smarty の変数メディエーター

<{$str}>

<{$str1}>

<{$str2}>

<{$str3}>

<{$str4}>

                                                        

<{$str|transform:" lower"}>
-- 出力文字列を小文字に変換します --> <{$str|transform:"upper"}>

<{$str|transform:"firstdx"}>

<{$str|subString:0:15:"###"}>

<{$str|subString:0:15:"@@@"|transform:"upper"}>
の代わりに @'

<{$str|transform:"upper"|subString:0:15:"@@@"}>

/libs/plugins/modifier.transform.php (変換ファイル修飾子)

/**

*smarty_modifier_transform

* * 文字列変換用の変数メディエーター関数

* @param string $string 文字列を処理しています

* @param string $type 処理タイプ

​​*/

関数smarty_modifier_transform($string,$type) {

スイッチ ($type) {

ケース「上部」:

$str = strtoupper($string);

壊す;

大文字小文字:

$str = strto lower($string);

壊す;

ケース「firstdx」:

$str = ucfirst($string);

壊す;

デフォルト:

$str = $string;

}

戻り $str;

}

?>

lib/plugins/modifier.subString.php (インターセプトテキスト修飾子)

/**

*smarty_modifier_subString

* * プロセスインターセプト文字列メディエーター

* @param string $string 文字列を処理しています

* @param int $start_num デフォルトでは先頭から始まる開始位置

* @param int $end_num 終了位置、デフォルトは 20

* @param string $addTo 文字列を追加します、デフォルトは '...'

​​*/

関数 Smarty_modifier_subString($string,$start_num=0,$end_num=20,$addTo='...') {

$_str = '';

If (strlen(substr($string, $start_num, $end_num))>=$end_num) {

$_str = substr($string, $start_num, $end_num).$addTo;

} else {

$_str = substr($string, $start_num, $end_num);

}

$_str を返します。

}

?>

実行結果:

上の例は、作成したメディエーター関数を呼び出すことができるように、メディエーター ファイルを Smarty のプラグイン ディレクトリ plugins に配置する必要があり、命名は Smarty のルールに従う必要があることを示しています。説明する必要があるもう 1 つの点は、定義された関数名は Smarty のデフォルトの命名規則 (たとえば、smarty_modifier_XXX) にも準拠する必要があり、モディファイア ファイルには複数の関数ではなく 1 つの関数のみを含めることができるということです。

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​… Smaryの内蔵メディエーターについては次のセクションで紹介します

Lee.さんのコラムより抜粋


http://www.bkjia.com/PHPjc/478570.html

www.bkjia.com本当http://www.bkjia.com/PHPjc/478570.html技術記事 PHP には、テキストを処理するための関数が多数あり、その関数を通じて処理するテキストを処理し、Smarty テンプレート エンジンの assign() を呼び出して値を変数に割り当て、テンプレートに割り当てることができます。 .
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles