2014-02-22 28 views
1

我有以下的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在兩個不同的變量在Smarty(如在PHP $parsed,$filename完成)(讓我們說字符串是[1]wholesale)。正如你看到它是相當相當潦草

1/wholesale 

但是:

回答

0

你可以做到這樣說:

{assign var="var" value="[1]wholesale"} 

{$var|substr:($var|strpos:'['+1):($var|strpos:']' - $var|strpos:'['-1)}/{$var|substr:($var|strpos:']'+1)} 

輸出,用於這將是。你當然可以將它移動到一些函數/修飾符,但是我總是需要告訴,最好的選擇是用PHP編寫數據,然後在Smarty中將其顯示爲不使用高級轉換。

相關問題