Smarty - 如何将url中的部分字符串存储到变量中?

时间:2014-11-25 16:25:11

标签: php html smarty

我不知道,我在互联网上找不到如何将功能爆炸的结果存储到变量中。我做错了什么? REQUEST_URI是:/cz/cs/15_test.html。 15_test.html是我需要存储在变量中的东西。非常感谢您的帮助。

SMARTY:

{assign var="url_catname" value=explode("/",$smarty.server.REQUEST_URI)}
{assign var="url_catname" value=$url_catname[3]}

2 个答案:

答案 0 :(得分:2)

你不能像这样从Smarty调用PHP函数。从PHP代码进行分配:

$smarty = new Smarty();
$pieces = explode("/", $_SERVER['REQUEST_URI']);
$smarty->assign('url_catname', $pieces[3]);
$smarty->display('blah-blah.tpl');

答案 1 :(得分:0)

之前的答案并非完全正确。你可以调用PHP函数,但当然在PHP脚本中做很多事情更合理,而在Smarty中只显示结果。

运行时:

{assign var="url_catname" value=explode("/",'/cz/cs/15_test.html')}
{assign var="url_catname" value=$url_catname[3]}
{$url_catname}

作为输出,您会收到:

  

15_test.html

所以它似乎没有问题(当然使用$smarty.server.REQUEST_URI时也一样)。

以这种方式使用explode时会得到完全相同的效果:

{assign var="url_catname" value="/"|explode:'/cz/cs/15_test.html'}
{assign var="url_catname" value=$url_catname[3]}
{$url_catname}

作为输出,您会收到:

  

15_test.html