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

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

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

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 の変数メディエーター

頭>






                                                        


-- 出力文字列を小文字に変換します -->





の代わりに @'


本文>

/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 までご連絡ください。
PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?Apr 25, 2025 am 12:16 AM

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッション関連の問題をどのようにデバッグしますか?PHPでセッション関連の問題をどのようにデバッグしますか?Apr 25, 2025 am 12:12 AM

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()が複数回呼び出されるとどうなりますか?session_start()が複数回呼び出されるとどうなりますか?Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでセッションのライフタイムをどのように構成しますか?PHPでセッションのライフタイムをどのように構成しますか?Apr 25, 2025 am 12:05 AM

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

セッションを保存するためにデータベースを使用することの利点は何ですか?セッションを保存するためにデータベースを使用することの利点は何ですか?Apr 24, 2025 am 12:16 AM

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでカスタムセッション処理をどのように実装しますか?PHPでカスタムセッション処理をどのように実装しますか?Apr 24, 2025 am 12:16 AM

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

セッションIDとは何ですか?セッションIDとは何ですか?Apr 24, 2025 am 12:13 AM

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

ステートレス環境(APIなど)でセッションをどのように処理しますか?ステートレス環境(APIなど)でセッションをどのように処理しますか?Apr 24, 2025 am 12:12 AM

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA

DVWA

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

SublimeText3 Mac版

SublimeText3 Mac版

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

メモ帳++7.3.1

メモ帳++7.3.1

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター