首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Smarty substr & strpos自上一次出现

Smarty substr & strpos自上一次出现
EN

Stack Overflow用户
提问于 2017-08-02 10:02:07
回答 1查看 2K关注 0票数 0
代码语言:javascript
运行
复制
{assign var="bar_at" value=$product.supplier_reference|strpos:"="}

$product.supplier_reference看起来像reference

我需要得到最后的“=”(实际引用)之后的内容。

上一次事件发生后如何获得strpos?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-02 11:39:04

首先,正确的函数是:strrpos

要做到这一点,您有多种方法:

1-纯粹的聪明方式:

代码语言:javascript
运行
复制
{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/,使用新插件名添加新文件,比如function.getReference.php

创建一个新函数smarty_function_getReference

然后编写您的纯PHP函数,然后从您的智能模板直接使用它,如下所示:

代码语言:javascript
运行
复制
function  smarty_function_money ($paramters) {
    $url = $paramters['url'];
    // here is our function body
}

在你聪明的模板里:

代码语言:javascript
运行
复制
{getReference url="https://www.example.com/search?w=1366&h=610&q=the_actual_reference"}

3-增加新的修饰语:

无论什么地方-定义智能视图逻辑,注册新的修饰符:

代码语言:javascript
运行
复制
$callback = function ($string) {
    // perform your logic within this callback
};

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

然后从智能模板直接调用这个修饰符,如下所示:

代码语言:javascript
运行
复制
{"https://www.example.com/search?w=1366&h=610&q=the_actual_reference"|getRefernce}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45457678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档