在纯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. Vue.JS 对比其他框架

    Angular 选择 Vue 而不选择 Angular,有下面几个原因,当然不是对每个人都适合: 在 API 与设计两方面上 Vue.js 都比 Angular 简单得多,因此你可以快速地掌握它的全部 ...

  2. linux 遇见的问题

    Permissions 0644 for '/root/.ssh/id_rsa' are too open.问题 如果出现 Permissions 0644 for '/root/.ssh/id_rs ...

  3. 5 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之生产环境下drbd裂脑处理

    preface 公司的业务变更,导致服务器要搬迁,所以需要关闭服务器,然后到新地在开启服务器. 关机前确定drbd+heartbeat+mysql是正常使用的,没有异常,Heartbeat和drbd都 ...

  4. Loadrunner安装

    安装参考网址:http://www.cnblogs.com/yangxia-test/archive/2012/10/30/2746621.html 本人验证过的,不自己写了 另附Loadrunner ...

  5. hdu4790 Just Random (数学?)

    acm.hdu.edu.cn/showproblem.php?pid=4790 题意:x随机取a~b,y随机取c~d,求(x+y)mod p = m 的概率.(结果用分数表示) 题解: 数学概率题,运 ...

  6. 如何挂载阿里云Linux服务器的“数据盘”(新购买)

    详细操作参考: http://jingyan.baidu.com/article/90808022d2e9a3fd91c80fe9.html 用到的命令行汇总: 1.查看磁盘: fdisk -l 2. ...

  7. 安卓TabHost页面

    <?xml version="1.0" encoding="UTF-8"?> <!-- TabHost组件id值不可变--> <T ...

  8. Node.js入门学习笔记(二)

    函数传递 举例来说,你可以这样做: function say(word) {      console.log(word);  }  function execute(someFunction, va ...

  9. mongo副本集搭建及服务器复用方案

    比较常见的mongodb副本集搭建是有:常规节点.数据副本.仲裁节点组成,也就是需要三台服务器组建.常规节点即数据的主存储节点,数据副本是主存储节点的从属节点,它定期去主节点获取更新日志来更新自己.仲 ...

  10. 引用项目外dll时不显示注释的解决方案

    在引用项目外的dll时,显示类库中的注释可按以下步骤: 方法或变量用summary添加注释,如:         /// <summary>发送post请求         /// < ...