上次出现的 Smarty substr & strpos
Smarty substr & strpos from last occurrence
{assign var="bar_at" value=$product.supplier_reference|strpos:"="}
$product.supplier_reference
看起来像https://www.example.com/search?w=1366&h=610&q=the_actual_reference
我需要获取最后一个“=”(实际引用)之后的内容
最后一次出现后如何获取strpos?
首先正确的函数是: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- 在插件目录中创建新插件,该目录位于以下路径下:vendor/smarty/smarty/libs/plugins/
,使用新插件名称添加新文件,比方说 function.getReference.php
创建一个新函数smarty_function_getReference
并编写您的纯 PHP 函数,然后直接从您的 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- 添加新修饰符:
无论您在哪里定义 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}
{assign var="bar_at" value=$product.supplier_reference|strpos:"="}
$product.supplier_reference
看起来像https://www.example.com/search?w=1366&h=610&q=the_actual_reference
我需要获取最后一个“=”(实际引用)之后的内容
最后一次出现后如何获取strpos?
首先正确的函数是: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- 在插件目录中创建新插件,该目录位于以下路径下:vendor/smarty/smarty/libs/plugins/
,使用新插件名称添加新文件,比方说 function.getReference.php
创建一个新函数smarty_function_getReference
并编写您的纯 PHP 函数,然后直接从您的 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- 添加新修饰符:
无论您在哪里定义 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}