在纯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);//返回数字
查找字符串在另一字符串中最后一次出现的位置(不区分大小写)

I、使用反斜线引用字符串

addslashes(str)
<?php
$testStr='转义后,"输出&quot;,阻止转义后,输出正常的双引号",有可能破坏变量的引号的正常匹配';
echo addslashes($testStr);
?>
//转义后,\"输出&quot;,阻止转义后,输出正常的双引号\",有可能破坏变量的引号的正常匹配

J、将字符转换为HTML转义字符,防止XSS攻击

htmlentities(str)
<?php
$testStr='<a href="test.html">测试页面</a>';
echo htmlentities($testStr);
?>
//<a href="test.html">²âÊÔÒ³Ãæ</a>有中文的时候,最好用htmlspecialchars,否则可能乱码。 
//&lt;a href=&quot;test.html&quot;&gt;测试页面&lt;/a&gt;

K、将特殊字符转换为HTML实体,防止XSS攻击

htmlspecialchars(str)
<?php
$testStr='<a href="test.html">测试页面</a>';
echo htmlspecialchars($testStr);
?>
//<a href="test.html">测试页面</a>
//&lt;a href=&quot;test.html&quot;&gt;测试页面&lt;/a&gt;

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模板引擎的更多相关文章

  1. php模板引擎之featherview

    在纯php文件中不加php结束符是一个好习惯,php结束符仅用于在php与html混写时标示php代码结束. <? ?>是短标签,<?php ?>是长标签,在php的配置文件( ...

  2. JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

    一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...

  3. Handlebars 模板引擎之前后端用法

    前言 不知不觉间,居然已经这么久没有写博客了,坚持还真是世界上最难的事情啊. 不过我最近也没闲着,辞工换工.恋爱失恋.深圳北京都经历了一番,这有起有落的生活实在是太刺激了,就如拿着两把菜刀剁洋葱一样, ...

  4. 推荐13款javascript模板引擎

    javaScript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰,本文介绍 X 款 JavaScript 的模板引擎.(排名不分先后顺序) 1. Mustache 基于j ...

  5. JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

    一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...

  6. DotLiquid模板引擎简介

    DotLiquid是一个在.Net Framework上运行的模板引擎,采用Ruby的Liquid语法,这个语法广泛的用在Ruby on rails和Django等网页框架中. DotLiquid相比 ...

  7. doT js 模板引擎【初探】要优雅不要污

    js中拼接html,总是感觉不够优雅,本着要优雅不要污,决定尝试js模板引擎. JavaScript 模板引擎 JavaScript 模板引擎作为数据与界面分离工作中最重要一环,越来越受开发者关注. ...

  8. 浅谈 Web 中前后端模板引擎的使用

    前言 这篇文章本来不打算写的,实话说楼主对前端模板的认识还处在非常初级的阶段,但是为了整个 源码解读系列 的完整性,在深入 Underscore _.template 方法源码后,觉得还是有必要记下此 ...

  9. JavaScript模板引擎artTemplate.js——结语

    再次首先感谢模板的作者大神,再次放出github的地址:artTemplate性能卓越的js模板引擎 然后感谢博客园的一位前辈,他写的handlebars.js模板引擎教程,对我提供了很大的帮助,也是 ...

随机推荐

  1. TAC Alpha版本 冲冲冲!!!

    第1天 第2天 第3天 第4天 第5天 第6天 第7天 第8天 第9天 第10天 测试随笔 冲刺总结

  2. xpth 字符串截取

    <xsl:value-of select="substring(//div[@class='infos'],1,27)"/>

  3. SDL 显示解码后的yuv12数据

    在上篇h264解码为yuv12后http://jhlong12345.blog.163.com/blog/static/1230631292015725115058709/ ,需要显示出来,使用sdl ...

  4. mysql order by 优化 |order by 索引的应用

    在某些场景,在不做额外的排序情况下,MySQL 可以使用索引来满足 ORDER BY 子句的优化.虽然 ORDER BY并不完全精确地匹配索引,但是索引还是会被使用,只要在WHERE子句中,所有未被使 ...

  5. Spring实战 (第3版)——AOP

    在软件开发中,分布于应用中多处的功能被称为横切关注点.通常,这些横切关注点从概念上是与应用的 业务逻辑相分离的(但是往往直接嵌入到应用的业务逻辑之中).将这些横切关注点与业务逻辑相分离正是 面向切面编 ...

  6. 设置arc 的默认编辑器

    arc set-config editor "vim" 转自:http://udn.yyuap.com/thread-39791-1-1.html Pharicator是FB的代码 ...

  7. Shell入门教程:流程控制(6)while 循环

    while循环的语法: while 条件测试 do     命令区域 done 举例: #!/bin/bash declare -i i=1 declare -i sum=0 while ((i< ...

  8. Shell入门教程:流程控制(7)break和continue

    第一节:breank命令 4种循环 for.while.until.select,如果想要提早结束循环,可在循环中使用break命令.执行break时,会跳出一层的循环,如果想跳出多层循环,可在bre ...

  9. H5案例分享:html5移动开发细微之美

    html5移动开发细微之美 1.H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=dev ...

  10. js求时间差

    var date1=new Date();  //开始时间 alert("aa"); var date2=new Date();    //结束时间 var date3=date2 ...