2017-08-02 40 views
0
{assign var="bar_at" value=$product.supplier_reference|strpos:"="} 

$product.supplier_reference看起來像https://www.example.com/search?w=1366&h=610&q=the_actual_referenceSmarty的SUBSTR與strpos從去年發生

我需要得到最後的「=」(實際參考)後會發生什麼

如何在最後得到strpos發生?

+0

猜你正在尋找一個[strrpos](http://php.net/manual/en/function.strrpos.php)和[substr](http://php.net/manual/en/function.substr.php) – Naruto

回答

1

首先正確的函數的去與是:strrpos

你有不同的方式來實現:

1-純智者方式:

{assign var="str" value="https://www.example.com/search?w=1366&h=610&q=the_actual_reference"} 
{assign var="offset" value=$str|strrpos:"="} 
{assign var="reference" value=$str|substr:($offset+1)} 
{$reference} 

2 - 在plugins目錄中創建新插件,該目錄位於以下路徑下:vendor/smarty/smarty/libs/plugins/,使用新插件名稱添加新文件,例如您的Smarty的模板中

function smarty_function_money ($paramters) { 
    $url = $paramters['url']; 
    // here is our function body 
} 

創建一個新的功能smarty_function_getReference

,寫你的純PHP函數,然後直接像下面使用這個從你的Smarty的模板

{getReference url="https://www.example.com/search?w=1366&h=610&q=the_actual_reference"} 

3-添加新修飾符:

哪裏,無論你要定義你的Smarty的視圖邏輯註冊新的修改:

$callback = function ($string) { 
    // perform your logic within this callback 
}; 

$this->registerPlugin('modifier', 'getRefernce', $callback); 

然後直接從你的Smarty模板調用這個修飾符就像下面:

{"https://www.example.com/search?w=1366&h=610&q=the_actual_reference"|getRefernce} 
+0

的組合純粹聰明的方式做到了這一招,謝謝。 – popkutt