登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: [php]smarty 模板库中怎样一个判断一个字符包含在一个字串里 及其所引发的问题     [回主站]     [分站链接]
[php]smarty 模板库中怎样一个判断一个字符包含在一个字串里 及其所引发的问题
clq
浏览(295) - 2019-11-14 17:08:34 发表 编辑

关键字: php

[2019-11-14 17:11:24 最后更新]
[php]smarty 模板库中怎样一个判断一个字符包含在一个字串里 及其所引发的问题

方法是直接使用 strstr 函数即可。例如:
{if strstr($str,','.$key.',') }

不过对于这个函数的调用网上有多种说法,特别是有一种非常怪异的函数调用方式主要将参数写在函数之前,个人觉得这种写法就没必要去学习了。

另外一个知识点就是 strstr() 函数能用并不表示其他的 php 函数也能直接使用,据说是要写在配置或者 plugin 中才可以。同样我也觉得这种方式实在没必要学,知道是怎么回事就可以了。

--------------------------------------------------------
参考 https://blog.csdn.net/u010624742/article/details/45220333

smarty 调用php内置函数
2015-04-23 13:01:26 luguohhh 阅读数 116
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010624742/article/details/45220333

错误提示::syntax error: (secure mode) 'strstr' not allowed in if statement

smarty 默认if 判断里面只让用几个内置方法,除此之外的不让使用,所以添加上就可以了,

但是你更改完后,需要更新smarty的缓存才会生效



Smarty.class.php 文件的230行



var $security_settings = array(
'PHP_HANDLING' => false,
'IF_FUNCS' => array('array', 'list',
'isset', 'empty',
'count', 'sizeof',
'in_array', 'is_array',
'true', 'false', 'null','strstr'),

// 此处添加你需要的php内置方法,smarty 是靠此处来判断是否让该方法可用




'INCLUDE_ANY' => false,
'PHP_TAGS' => false,
'MODIFIER_FUNCS' => array('count'),
'ALLOW_CONSTANTS' => false,
'ALLOW_SUPER_GLOBALS' => true
);




模板里面这么写


<{if !strstr($data.pic,'http')}>逻辑,逻辑<{/if}>​

我这是判断是否是远程图片

--------------------------------------------------------
https://blog.csdn.net/gggxin/article/details/1725001

smarty 中的 strstr 处理
2007-08-03 20:09:00 klggg 阅读数 2457
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gggxin/article/details/1725001

添加文件 smarty/plugins/function.strstr.php

内容
function smarty_function_strstr($params, &$smarty)
{
if(strstr($params["haystack"], $params["needle"]) == false)
$smarty->assign('_isFound','0');
else
$smarty->assign('_isFound', '1');
return;
}
?>

使用方法
<{strstr haystack="aaa,bbb,ccc,ddd,eee" needle="aaa"}>
<{if $_isFound eq '1' }> is found. <{/if}>


如果是变量也可以使用 <{strstr haystack="$value" needle="$key"}>

目前也想到了这种方法 因为
<{if (strstr haystack="aaa,bbb,ccc,ddd,eee" needle="aaa") eq '1' }>
这种方法运行出错。。

--------------------------------------------------------
https://www.jb51.net/article/60248.htm

smarty模板引擎中自定义函数的方法
更新时间:2015年01月22日 15:36:14 投稿:shichen2014 我要评论
这篇文章主要介绍了smarty模板引擎中自定义函数的方法,实例分析了自定义函数的定义、注册及调用技巧,需要的朋友可以参考下

本文实例讲述了smarty 自定义函数方法,分享给大家供大家参考。具体如下:

本实例目的:输出 times 次 con的内容(输出4次hello world)

文件1:
复制代码 代码如下:
//创建smarty对象
require_once("./libs/Smarty.class.php");
$smarty = new Smarty();
//自定义一个函数
//说明:(1)、$arr为一个数组;(2)、tpl调用形式{test times="4" size="5" con="hello,world" color="red"}
function test($arr){
$str = "";
for($i=0;$i<$arr['times'];$i++){
$str .= "".$arr['con']."";
}
return $str;
}
//注册函数 registerPlugin
$smarty->registerPlugin("function","test","test");//第二个参数是模板文件调用的函数名称,可变;第三个参数是上面自定义的函数名称;相应于一个对应关系

$smarty->display("temp.tpl");
?>

模板文件:temp.tpl
复制代码 代码如下:

smarty自定义函数的使用


{test times="3" con="hello world" size="3" color="green"}


注意:smarty 3.1.8 已经不支持注册函数 register_function,应换成 registerPlugin

希望本文所述对大家的php程序设计有所帮助。








总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录
smarty模板 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1