featherview模板引擎
在纯php文件中不加php结束符是一个好习惯,php结束符仅用于在php与html混写时标示php代码结束。
<? ?>是短标签,<?php ?>是长标签,在php的配置文件(php.ini)中有一个short_open_tag的值,开启以后可以使用PHP的短标签。
一、简介featherview
Feather_view是内置的php模板引擎,结合fis提供的fis-server,可以实现动态模版渲染本地调试功能。这个插件是后端提供的,前端和后端的联系仅仅通过Feather_view。
二、featherview常用语法
1、模块引用
2、扩展子模块
3、PHP符号
A、单行注释用 // 或 #,多行注释用/* */
B、拼接字符串用"."
C、@是错误抑制符,就算变量不存在,也能让页面正常输出。
<?=@$value ?>
这样做有好处,也有坏处,页面不出错,发现不了问题。
4、定义变量
<?php $value="Bonjour"; ?>
<?php $name="camille"; ?>
5、打印变量
<?= $value ?> // Bonjour
echo是一个语言结构,有无括号均可使用,echo或echo()。echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值。print()只能打印出简单类型变量的值,如int,string。print_r()可以打印出复杂类型变量的值,如数组,对象。
<?php echo $value; ?> //Bonjour
<?php echo var_dump($value); ?> //string(7) "Bonjour"
<?php echo sprintf("%s, je suis %s ",$value,$name); ?> //Bonjour,je suis camille
<?php print $value; ?> //Bonjour
<?php print_r($value); ?> //Bonjour
<?php printf("%s, je suis %s ",$value,$name);?> //Bonjour,je suis camille
6、定义数组
<?php $myArr=array("job","blog","essay","fransai","dream"); ?>
<?php $myArr=array("job" => "r1","blog" => "r2","essay"=> "r3","fransai"=>"r4","dream"=>"r5"); ?>
7、打印数组
A、<?php print_r($myArr); ?>
Array
(
[0] => job
[1] => blog
[2] => essay
[3] => fransai
[4] => dream
)
B、<?php var_dump($myArr); ?>
array(5) {
[0]=>
string(3) "job"
[1]=>
string(4) "blog"
[2]=>
string(5) "essay"
[3]=>
string(7) "fransai"
[4]=>
string(5) "dream"
}
C、<?php var_export($myArr); ?>
返回一个变量的字符串表示。
8、条件语句
<?php if ($value !== 0): echo $value; endif; ?>
<?php if(): ?>
<?php endif; ?>
<?php if($value != ''): ?>
<?php else: ?>
<?php endif; ?>
<?php if ($value !== 0) { echo 'active'; } ?>
<?php if() { ?>
<?php } else { ?>
<?php } ?>
<?php echo !empty($value) ? $value : ''; ?>
9、循环语句
<?php for($j=0; $j < count($myArr); $j++) { ?>
<?php } ?>
<?php foreach($myArr as $key => $value): ?>
<?php endforeach; ?>
<?php foreach($myArr as $key => $value) {
} ?>
<?php foreach($myArr as $key => $value) { ?>
<?php } ?>
三、featherview常用的PHP函数
1、字符串操作
A、返回字符串长度
strlen(str)
mb_strlen(str,'utf8')
B、移除字符串两边特定字符,常用来除去两边空格
trim(str, charlist)
C、通过千位分组来格式化数字
number_format($value)
D、将变量转成整数类型
intval($value)
E、返回字符串的一部分
mb_substr(str, startindex, length, 'utf-8')
<?php echo mb_strlen($value,'utf8') > 8 ? mb_substr($value, 0, 8, 'utf-8')."..." : $value; ?>
F、替换字符串中特定的字符
strtr(str, findstr, replacestr)
strtr(str, array)
<?php
echo strtr("baab", "ab", "01"),"\n"; //
$trans = array("ab" => "01");
echo strtr("baab", $trans); //ba01
?>
G、返回替换后的字符串
str_replace(findstr, replacestr, str)
<?php echo str_replace("o","a",$value); ?> // Banjaur
H、查找字符串在另一字符串中的首次出现,区分大小写,返回字符串
strstr(str, findstr, false)
<?php echo strstr($value,"o"); ?> // onjour
<?php echo strstr($value,"o",true); ?> // B
strpos(str, findstr, start);//返回数字
查找字符串在另一字符串中第一次出现的位置(区分大小写) stripos(str, findstr, start);//返回数字
查找字符串在另一字符串中第一次出现的位置(不区分大小写) strrpos(str, findstr, start);//返回数字
查找字符串在另一字符串中最后一次出现的位置(区分大小写) strripos(str, findstr, start);//返回数字
查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
addslashes(str)
<?php
$testStr='转义后,"输出",阻止转义后,输出正常的双引号",有可能破坏变量的引号的正常匹配';
echo addslashes($testStr);
?>
//转义后,\"输出",阻止转义后,输出正常的双引号\",有可能破坏变量的引号的正常匹配
J、将字符转换为HTML转义字符,防止XSS攻击
htmlentities(str)
<?php
$testStr='<a href="test.html">测试页面</a>';
echo htmlentities($testStr);
?>
//<a href="test.html">²âÊÔÒ³Ãæ</a>有中文的时候,最好用htmlspecialchars,否则可能乱码。
//<a href="test.html">测试页面</a>
K、将特殊字符转换为HTML实体,防止XSS攻击
htmlspecialchars(str)
<?php
$testStr='<a href="test.html">测试页面</a>';
echo htmlspecialchars($testStr);
?>
//<a href="test.html">测试页面</a>
//<a href="test.html">测试页面</a>
L、把字符串分割到数组中
str_split(str, length)
<?php print_r(str_split($value,2)); ?>
Array
(
[0] => Bo
[1] => nj
[2] => ou
[3] => r
)
M、把字符串打散为数组
explode(" ",$value)
<?php print_r(explode(" ",$value)); ?>
Array
(
[0] => Bonjour
)
2、数组操作
A、检测变量是否为空
empty($value) 或者 empty($myArr)
B、检测变量是否设置
isset($value) 或者 isset($myArr)
C、销毁变量
unset($myArr)
D、检测变量是否是数组
is_array($myArr)
E、检测数组中是否存在指定的值,区分大小写。
in_array(finditem, array)
F、返回数组长度
count($myArr), sizeof()是count()的别名
G、求最小最大值
min(x,y)或者min($myArr)
max(x,y)或者min($myArr)
H、返回一个包含给定数组中所有键值的数组,但不保留键名。
array_values($myArr)
I、从数组第二个元素开始取出,并仅返回两个元素。
array_slice($myArr,1,2)
J、从数组第三个元素开始取出,并返回数组中的其余元素。
array_slice($myArr,2)
K、数组组合成字符串
implode(" ",$myArr)
L、把数组(或对象)转为json格式数据
json_encode($myArr)
M、对JSON格式的字符串进行解码,并转换为 PHP 变量。
json_decode($json)
N、格式化本地日期和时间,并返回已格式化的日期字符串。
date(format,timestamp)
四、featherview常用的超级全局变量
1、从地址栏获取参数
$_GET["agentno"] //比如1
2、判断是否是https协议
function getProtocol(){
return !isset($_SERVER['HTTPS']) ? 'http://' :'https://';
}
3、获取当前页面地址的主机名,类型为string。
$_SERVER['HTTP_HOST'] //比如xxx.com.cn
4、获取当前设备的userAgent,类型为string。
function isWeixin(){
return strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger') > -1 ? true : false ;
}
五、php自定义函数
//不传参数时,默认是空字符串,是设置函数默认参数的一种方式
public static function getParam($str=""){
}
featherview模板引擎的更多相关文章
- php模板引擎之featherview
在纯php文件中不加php结束符是一个好习惯,php结束符仅用于在php与html混写时标示php代码结束. <? ?>是短标签,<?php ?>是长标签,在php的配置文件( ...
- JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- Handlebars 模板引擎之前后端用法
前言 不知不觉间,居然已经这么久没有写博客了,坚持还真是世界上最难的事情啊. 不过我最近也没闲着,辞工换工.恋爱失恋.深圳北京都经历了一番,这有起有落的生活实在是太刺激了,就如拿着两把菜刀剁洋葱一样, ...
- 推荐13款javascript模板引擎
javaScript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰,本文介绍 X 款 JavaScript 的模板引擎.(排名不分先后顺序) 1. Mustache 基于j ...
- JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- DotLiquid模板引擎简介
DotLiquid是一个在.Net Framework上运行的模板引擎,采用Ruby的Liquid语法,这个语法广泛的用在Ruby on rails和Django等网页框架中. DotLiquid相比 ...
- doT js 模板引擎【初探】要优雅不要污
js中拼接html,总是感觉不够优雅,本着要优雅不要污,决定尝试js模板引擎. JavaScript 模板引擎 JavaScript 模板引擎作为数据与界面分离工作中最重要一环,越来越受开发者关注. ...
- 浅谈 Web 中前后端模板引擎的使用
前言 这篇文章本来不打算写的,实话说楼主对前端模板的认识还处在非常初级的阶段,但是为了整个 源码解读系列 的完整性,在深入 Underscore _.template 方法源码后,觉得还是有必要记下此 ...
- JavaScript模板引擎artTemplate.js——结语
再次首先感谢模板的作者大神,再次放出github的地址:artTemplate性能卓越的js模板引擎 然后感谢博客园的一位前辈,他写的handlebars.js模板引擎教程,对我提供了很大的帮助,也是 ...
随机推荐
- ADMM与one-pass multi-view learning
现在终于开始看论文了,机器学习基础部分的更新可能以后会慢一点了,当然还是那句话宁愿慢点,也做自己原创的,自己思考的东西.现在开辟一个新的模块----多视图学习相关论文笔记,就是分享大牛的paper,然 ...
- 10月27日PHP加载类、设计模式(单例模式和工厂模式)、面向对象的六大原则
加载类可以使用include.require.require_once三种中的任意一种,每个关键字都有两种方法,但是这种方法的缺点是需要加载多少个php文件,就要写多少个加载类的方法.一般也就需要加载 ...
- 大熊君JavaScript插件化开发------(第二季)
一,开篇分析 Hi,大家好!大熊君又和大家见面了,还记得昨天的那篇文章吗------这个系列的开篇(第一季).主要讲述了以“jQuery的方式如何开发插件”, 那么今天我们带着昨天的疑问来继续我们的插 ...
- tyvj1114 搭建双塔
描述 2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难.为了纪念“9?11”事件,Mr. F决定自己用水晶来搭建一座双塔. Mr. F有 ...
- JS正则检测密码强度
今天遇到个需求,使用JS检测密码强度:密码长度最短为8,必须同时包含字母.数字.特殊符号. 代码如下: /* * 检测密码复杂度 */ function ...
- Android Activity的加载的模式
---恢复内容开始--- 本文来自http://www.cnblogs.com/lwbqqyumidi/p/3771542.html launchMode在多个Activity跳转的过程中扮演着重要的 ...
- 使用python列表推导式进行99乘法表
首先这很python for i in range(1, 10): print(" ".join(["%d*%d=%d" % (j, i, i*j) for j ...
- linux Mint截图软件 Shutter
安装shutter: sudo add-apt-repository ppa:shutter/ppa sudo apt-get update sudo apt-get install shutter ...
- 未备案域名打开国内服务器上的网站(绑定国外空间并判断url后跳转引用)
场景:由于域名没备案不能绑定国内服务器,通过先绑定国外空间,在空间着陆页判断当前url,打开不同的页面.页面上通过iframe引用国内服务器上的目标网站. 实现:未备案域名打开国内服务器上的网站. 国 ...
- java基本算法之冒泡排序
冒泡排序:是一种较简单的排序算法.它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小:如果前者比后者大,则交换它们的位置.这样,一次遍历之后,最大的元素就在数列的末尾! ...