如何在Smarty中使用PHP函数集
发布时间:2020-12-13 16:06:25 所属栏目:PHP教程 来源:网络整理
导读:我真的很聪明.我想知道如何在smarty中使用一组 PHP函数.我知道有些功能可以直接使用. 例如:{$my_string | strip_tags} 我正在使用PDO和smarty.请在下面的代码中查看我的帖子 $stmnt = $conn-prepare("SELECT post_id,post_title FROM posts ORDER BY post_i
我真的很聪明.我想知道如何在smarty中使用一组
PHP函数.我知道有些功能可以直接使用.
例如:{$my_string | strip_tags} 我正在使用PDO和smarty.请在下面的代码中查看我的帖子 $stmnt = $conn->prepare("SELECT post_id,post_title FROM posts ORDER BY post_id DESC"); $stmnt ->execute(); $row = $stmnt ->fetchAll(); $my_template = new Smarty; $my_template->debugging = false; $my_template->caching = true; $my_template->cache_lifetime = 120; $my_template->setTemplateDir('./templates/’'); $my_template->assign("row",$row); $my_template->display('posts.tpl'); //in my smartyposts.tpl {foreach $row as $r} //display posts here {/foreach} 我想使用一些php函数从post_title创建url.通常我在php中做什么 <?php foreach($row as $r){ $post_title = $r[‘post_title’]; $create_link = preg_replace("![^a-z0-9]+!i","-",$post_title); $create_link = urlencode($create_link); $create_link = strtolower($create_link); ?> <a href="posts/<?php echo $create_link;?>”><?php echo $post_title ;?></a> <?php } ?> 如何使用smarty实现相同的输出?我到处搜索但找不到任何答案.感谢你的时间. 解决方法
创建一个
modifier:
test.php的 <?php require_once('path/to/libs/Smarty.class.php'); function smarty_modifier_my_link($title) { $link = preg_replace("![^a-z0-9]+!i",$title); $link = urlencode($link); return strtolower($link); } $smarty = new Smarty(); $smarty->setTemplateDir(__DIR__ . '/templates/'); $smarty->setCompileDir(__DIR__ . '/templates_c/'); $smarty->setConfigDir(__DIR__ . '/configs/'); $smarty->setCacheDir(__DIR__ . '/cache/'); $smarty->registerPlugin('modifier','my_link','smarty_modifier_my_link'); $smarty->assign('posts',[ ['post_title' => 'Some Title 1'],['post_title' => 'Some Title 2'],]); $smarty->display('index.tpl'); 模板/ index.tpl里 {foreach $posts as $p} <a href="/posts/{$p.post_title|my_link}">{$p.post_title|htmlspecialchars}</a> {/foreach} 产量 <a href="/posts/some-title-1">Some Title 1</a> <a href="/posts/some-title-2">Some Title 2</a> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |