2017-08-02 4 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-純粋なSmartyの道:

{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 - プラグインディレクトリに新しいプラグインを作成します。プラグインディレクトリは、vendor/smarty/smarty/libs/plugins/のパスの下にあります。新しいプラグイン名のファイルを追加します。 は、あなたの純粋なPHPの機能を新しい機能smarty_function_getReference

を作成して書き込み、その後、直接、次のようなあなたのSmartyテンプレートからこれを使用する:

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

をあなたのSmartyテンプレート内:

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

3- add new modifier:

-今まであなたがあなたのSmartyのビューロジックが新しい修飾子登録定義している

:以下のようなあなたのSmartyテンプレートから直接この修飾子を呼び出して

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

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

を:

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

の組み合わせ純粋でスマートな方法は、トリックをした、ありがとう。 – popkutt