详解PHP EasyTpl的功能及安装使用方法

EasyTpl -简单快速的 PHP 模板引擎。 功能特性:简单、轻量且快速。 无学习成本仅仅简单处理并转换为原生PHP语法兼容PHP原生语法使用 更加简单的输出语法。

EasyTpl – 简单快速的 PHP 模板引擎

简单快速的 PHP 模板引擎。

功能特性

  • 简单、轻量且快速。
    • 无学习成本
    • 仅仅简单处理并转换为原生PHP语法
    • 兼容PHP原生语法使用
  • 更加简单的输出语法。 例如:{{= $var }} {{ $var }} {{ echo $var }}
  • 支持所有控制语法。 例如 if,elseif,else;foreach;for;switch
  • 支持链式访问数组值。 例如:{{ $arr.0 }} {{ $map.name }} {{ $map.user.name }}
  • 更加安全,默认会自动通过 htmlspecialchars 将输出结果进行处理
    • 除非设置了禁用或者手动使用 raw 过滤器
  • 支持使用PHP内置函数作为过滤器。 例如:{{ $var | ucfirst }}
  • 支持添加自定义过滤器
    • 默认内置过滤器:upper lower nl
  • 支持添加自定义指令,提供自定义功能
  • 支持模板中添加注释。 例如: {{# comments … #}}

安装

  • 需要 PHP 8.0+

composer

composer require phppkg/easytpl登录后复制快速开始use PhpPkg\EasyTpl\EasyTemplate;

$tplCode = < ;inhere;,
;tags; => [;php;, ;go;, ;java;],
]);

echo $str;登录后复制

渲染输出:

My name is INHERE,My develop tags:- php- go- java登录后复制更多使用说明

语法跟PHP原生模板一样的,加入的特殊语法只是为了让使用更加方便。

  • EasyTemplate 默认开启输出过滤,可用于渲染视图模板
  • TextTemplate 则是关闭了输出过滤,主要用于文本处理,代码生成等

配置设置use PhpPkg\EasyTpl\EasyTemplate;$t = EasyTemplate::new([
;tplDir; => ;path/to/templates;,
;allowExt; => [;.php;, ;.tpl;],]);// do something …登录后复制

更多设置:

/** @var PhpPkg\EasyTpl\EasyTemplate $t */
$t->disableEchoFilter();
$t->addFilter($name, $filterFn);
$t->addFilters([]);
$t->addDirective($name, $handler);登录后复制输出变量值

下面的语句一样,都可以用于打印输出变量值

{{ $name }}{{= $name }}{{ echo $name }}登录后复制

更多:

{{ $name ?: ;inhere; }}{{ $age > 20 ? ;20+; : ;<= 20; }}登录后复制

默认会自动通过 htmlspecialchars 将输出结果进行处理,除非设置了禁用或者手动使用 raw 过滤器

  • 设置禁用输出过滤 $t->disableEchoFilter()
  • 模板中禁用输出过滤 {{ $name | raw }}

快速访问数组值

可以使用 . 来快速访问数组值。原来的写法也是可用的,简洁写法也会自动转换为原生写法。

$arr = [
;val0;,
;subKey; => ;val1;,];登录后复制

在模板中使用:

first value is: {{ $arr.0 }} // val0;subKey; value is: {{ $arr.subKey }} // val1登录后复制If 语句块

if 语句:

{{ if ($name !== ;;) }}hi, my name is {{ $name }}{{ endif }}登录后复制

if else 语句:

hi, my name is {{ $name }}age is {{ $age }}, and{{ if ($age >= 20) }}
age >= 20.{{ else }}
age < 20.{{ endif }}登录后复制

if…elseif…else 语句:

hi, my name is {{ $name }}age is {{ $age }}, and{{ if ($age >= 50) }}
age >= 50.{{ elseif ($age >= 20) }}
age >= 20.{{ else }}
age < 20.{{ endif }}登录后复制For/Foreach 语句块

foreach:

tags:{{ foreach($tags as $tag) }}- {{ $tag }}{{ endforeach }}登录后复制

with keys:

tags:{{ foreach($tags as $index => $tag) }}{{ $index }}. {{ $tag }}{{ endforeach }}登录后复制模板中添加注释

以 {{# 和 #}} 包裹的内容将会当做注释忽略。

{{# comments … #}}{{ $name }} // inhere登录后复制

multi lines:

{{# this
comments
block
#}}{{ $name }} // inhere登录后复制使用过滤器

默认内置过滤器:

  • upper – 等同于 strtoupper
  • lower – 等同于 strtolower
  • nl – 追加换行符 \n

过滤器使用示例

您可以在任何模板中使用过滤器。

基本使用:

{{ ;inhere; | ucfirst }} // Inhere {{ ;inhere; | upper }} // INHERE登录后复制

链式使用:

{{ ;inhere; | ucfirst | substr:0,2 }} // In{{ ;1999-12-31; | date:;Y/m/d; }} // 1999/12/31登录后复制

传递非静态值:

{{ $name | ucfirst | substr:0,1 }}{{ $user[;name;] | ucfirst | substr:0,1 }}{{ $userObj->name | ucfirst | substr:0,1 }}{{ $userObj->getName() | ucfirst | substr:0,1 }}登录后复制

将变量作为过滤器参数传递:

{{
$suffix = ;¥;;}}{{ ;12.75; | add_suffix:$suffix }} // 12.75¥登录后复制自定义过滤器use PhpPkg\EasyTpl\EasyTemplate;$tpl = EasyTemplate::new();// use php built function$tpl->addFilter(;upper;, ;strtoupper;);// 一次添加多个$tpl->addFilters([
;last3chars; => function (string $str): string {
return substr($str, -3);
},]);登录后复制

在模板中使用:

{{
$name = ;inhere;;}}{{ $name | upper }} // INHERE{{ $name | last3chars }} // ere{{ $name | last3chars | upper }} // ERE登录后复制自定义指令

您可以使用指令实现一些特殊的逻辑。

$tpl = EasyTemplate::new();$tpl->addDirective(
;include;,
function (string $body, string $name) {
/** will call {@see EasyTemplate::include()} */
return ;$this->; . $name . $body;
});登录后复制

在模板中使用:

{{ include(;part/header.tpl;, [;title; => ;My world;]) }}登录后复制

Github: github.com/phppkg/easytpl

php入门到就业线上直播课:立即学习全程直播 + 实战授课 + 边学 + 边练 + 边辅导

php 怎么实现大转盘功能

原创2021-11-16 10:35:11919 + php学习QQ群(点击入群)

php实现大转盘功能的方法:1、拼装奖项数组,代码如“$prize_arr = array(…)”;2、计算中奖概率;3、返回中奖情况即可。

详解PHP EasyTpl的功能及安装使用方法

php入门到就业线上直播课:进入学习API 文档、设计、调试、自动化测试一体化协作工具:点击使用

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

php 怎么实现大转盘功能?

PHP实现大转盘抽奖算法

流程:

1.拼装奖项数组,2.计算概率,3.返回中奖情况

代码如下:中奖概率 ' v ' 可以在后台设置,传到此方法中,注意传整数

function get_gift(){
//拼装奖项数组
// 奖项id,奖品,概率
$prize_arr = array(
'0' => array('id'=>1,'prize'=>'平板电脑','v'=>0),
'1' => array('id'=>2,'prize'=>'数码相机','v'=>0),
'2' => array('id'=>3,'prize'=>'音箱设备','v'=>0),
'3' => array('id'=>4,'prize'=>'4G优盘','v'=>5),
'4' => array('id'=>5,'prize'=>'10Q币','v'=>0),
'5' => array('id'=>6,'prize'=>'空奖','v'=>5),
);
foreach ($prize_arr as $key => $val) {
$arr[$val['id']] = $val['v'];//概率数组
}
$rid = $this->get_rand($arr); //根据概率获取奖项id
$res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项
unset($prize_arr[$rid-1]); //将中奖项从数组中剔除,剩下未中奖项
shuffle($prize_arr); //打乱数组顺序
for($i=0;$i $proCur) {
$randNum = mt_rand(1, $proSum); //返回随机整数
if ($randNum <= $proCur) {
$result = $key;
break;
} else {
$proSum -= $proCur;
}
}
unset ($proArr);
return $result;
}登录后复制

效果图:

详解PHP EasyTpl的功能及安装使用方法

以上就是php 怎么实现大转盘功能的详细内容,更多请关注钦钦技术栈其它相关文章!

转载至:php中文网【www.php.cn】

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/26613/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022-09-27 8:46:00
下一篇 2022-09-27 8:46:15

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!