我在php中有以下代码,我正在寻找smarty
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
$fullstring = '[1]wholesale';
$parsed = get_string_between($fullstring, "[", "]");
$filename = substr(strrchr($fullstring, "]"), 1);
echo $parsed.'/'.$filename;
//Output 1/Wholesale
我想在1/Wholesale
中的两个不同变量(如在php $parsed,$filename
中完成)输出Smarty
(假设字符串为[1]wholesale
)。
答案 0 :(得分:0)
你可以这样做:
{assign var="var" value="[1]wholesale"}
{$var|substr:($var|strpos:'['+1):($var|strpos:']' - $var|strpos:'['-1)}/{$var|substr:($var|strpos:']'+1)}
此输出将为:
1/wholesale
然而,正如你所看到的那样相当难以辨认。您当然可以将其移动到某个函数/修饰符,但是我需要告诉您,最好的选择是在PHP中准备数据,然后在Smarty中显示它而不使用高级转换。