Maison >développement back-end >tutoriel php >Utilisation et exemple d'analyse du moteur de modèle PHP Médiateur de variables personnalisées Smarty
Cet article présente principalement l'utilisation du médiateur de variables personnalisées Smarty du moteur de modèles PHP. Il analyse plus en détail l'utilisation du médiateur de variables personnalisées et les compétences de mise en œuvre du médiateur de variables personnalisées
En PHP, il existe de nombreuses fonctions de traitement de texte. Après avoir traité le texte à traiter via la fonction, vous pouvez ensuite appeler assign() dans le moteur de template Smarty pour attribuer la valeur à une variable et l'attribuer à la variable. modèle à afficher.Format : {$var|modifier1:"Parameter1":"Parameter2":Parameter3|modifier2|modifier3|...}
Définir le modérateur Le fichier doit être placé dans Smarty, le chemin spécifique est : libs/plugins/. Le nom du fichier doit être au format Smarty modifier.moderator name.phpCe qui suit montre l'utilisation de modérateurs de variables personnalisés dans Smarty à travers un exempleIdée de programmation : Créer deux variables La fonction du médiateur est : un pour convertir le texte ; un pour intercepter le texte. init.inc.php (fichier d'initialisation Smarty)<?php define('ROOT_PATH', dirname(__FILE__)); //设置网站根目录 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 (fichier principal)
<?php define('CONST_VAR', 'ABC'); require 'init.inc.php'; //引入模板初始化文件 global $_tpl; $_str = 'abcdEFGHigklmnOPQRSTuvwsYz'; //定义一个字符串 $_tpl->assign('str',$_str); //字符串赋值给str $_tpl->assign('str1',strtolower($_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
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Smarty 中的变量调解器</title> </head> <body> <{$str}><br /> <!-- 输出字符串原形 --> <{$str1}><br /> <!-- 输出字符串转换为小写--> <{$str2}><br /> <!-- 输出字符串转换为大写 --> <{$str3}><br /> <!-- 输出字符串首字母大写 --> <{$str4}><br /> <!-- 截取字符串,截取15个字符串,后面的用'...'代替 --> <{$str5}><br /> <!-- 截取字符串,截取15个字符串,转换为大写,后面的用'...'代替 --> <!-- 您会发现,使用赋值过来的变量,使用起来不是很灵活, 如果需要处理字符串,就必须得在主文件中设立一个新变量,并把值赋给这个新变量。 使用变量调解器,可灵活的处理字符串 --> <{$str|transform}><br /> <!-- 输出字符串原形--> <{$str|transform:"lower"}><br /> <!-- 输出字符串转换为小写--> <{$str|transform:"upper"}><br /> <!-- 输出字符串转换为大写 --> <{$str|transform:"firstdx"}><br /> <!-- 输出字符串首字母大写 --> <{$str|subString:0:15:"###"}><br /> <!-- 截取字符串,截取15个字符串,后面的用'###'代替 --> <{$str|subString:0:15:"@@@"|transform:"upper"}><br /> <!-- 截取字符串,截取15个字符串,后面的用'@@@'代替 --> <{$str|transform:"upper"|subString:0:15:"@@@"}><br /> <!-- 功能同上 --> </body> </html>/libs/plugins/modifier.transform. php (modificateur de fichier de conversion)
<?php /** * smarty_modifier_transform * 字符串转换的变量调解器函数 * @param string $string 处理字符串 * @param string $type 处理类型 */ function smarty_modifier_transform($string,$type) { switch ($type) { case 'upper' : $str = strtoupper($string); break; case 'lower' : $str = strtolower($string); break; case 'firstdx' : $str = ucfirst($string); break; default: $str = $string; } return $str; } ?>lib/plugins/modifier.subString.php (modificateur de texte d'interception)
<?php /** * smarty_modifier_subString * 处理截取字符串调解器 * @param string $string 处理字符串 * @param int $start_num 开始位置,默认从头开始 * @param int $end_num 结束位置,默认20 * @param string $addTo 追加字符串,默认'...' */ function 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); } return $_str; } ?>Résultat de l'exécution : L'exemple ci-dessus montre que le fichier médiateur doit être placé sous le répertoire des plug-ins de Smarty plugins , et la dénomination doit suivre les règles de Smarty, afin que la fonction médiatrice que vous écrivez puisse être appelée. Un autre point qui doit être expliqué est que le nom de fonction défini doit également être conforme aux règles de dénomination par défaut de Smarty, par exemple : smarty_modifier_XXX, et un fichier modérateur ne peut contenir qu'une seule fonction, pas plusieurs. Résumé : Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Recommandations associées :
Définition et utilisation de la fonction htmlentities() en php
Méthodes PHP et exemples simples de génération de codes de vérification sur lesquels on peut cliquer pour actualiser
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!