如何在smarty中找到给定字符之间的子串?

时间:2014-02-22 10:39:37

标签: smarty

我在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)。

1 个答案:

答案 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中显示它而不使用高级转换。