2014-11-25 4 views
0

Я не знаю, и я не могу найти в Интернете, как сохранить результат функции взорваться переменной. Что я делаю неправильно? REQUEST_URI: /cz/cs/15_test.html. 15_test.html - это то, что мне нужно сохранить в моей переменной. Большое вам спасибо за помощь.Smarty - Как сохранить часть строки от url до переменной?

SMARTY:

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

ответ

2

Вы не можете вызывать функции PHP от Smarty, как это. Выполнение задания из кода PHP:

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

Привет, спасибо очень много. – user3105439

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