在纯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. 【原创】自己动手写工具----签到器[Beta 1.0]

    一.写在前面 最近公司没有什么项目,想通过项目练练手的机会也没有,只能自己学习了,因此空下来的时间也挺多的,就打开网页看看吧,哎,一打开就让签到(像什么百度知道啊.百度云盘啊之类的),我签到的目的是获 ...

  2. Ubuntu学习总结-07 Nodejs和npm的安装

    一 安装NodeJS 1 下载nodejs源码 从以下网址下载最新的Nodejs源码 https://nodejs.org/en/download/ 2 安装依赖的 python,gcc,g++ 函数 ...

  3. Hibernate的关联映射关系

    一:多对一 <many-to-one 1.name:当前类的属性名(关联映射的类) 2.column:属性多对应的类的对应的表的外键(连接条件) 3.class:属性所对应的类的权限定名 4.n ...

  4. jquery 幻灯片 左右滚动

    使用jquery封装的一个幻灯片插件 写的好差  参考了别人写的 后面再重构 现在这个应该可以直接用了 主要实现思路就是 添加当前选中状态 index相对应的 选中的图总是在第一位(也就是加选中状态的 ...

  5. Codeforces Round #277.5 (Div. 2) ABCDF

    http://codeforces.com/contest/489 Problems     # Name     A SwapSort standard input/output 1 s, 256 ...

  6. javascript设置和获取cookie的通用方法

    //获取cookie  function getCookieValue(cookieName)  {     var cookieValue = document.cookie;     var co ...

  7. tyvj1013 找啊找啊找GF

    描述 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见.""诶,别再见啊..."七夕...七夕...七夕这个日子,对于sqybi这种单身的 ...

  8. PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别

    开发站群软件,用到了根据访问域名判断子站点的相关问题,PHP获取当前域名有两个变量 $_SERVER['HTTP_HOST'] 和 $_SERVER['SERVER_NAME'],两者的区别以及哪个更 ...

  9. Spring中的JdbcTemplate使用

    1.引出SpringJDBC的概念 在学习JDBC编程时我们会感觉到JDBC的操作是多么繁琐,那么当我们学习的Hibernate框架时,我们感觉到数据库的操作也变非常简单,提高了开发效率.但是当使用H ...

  10. 如何让自己的app尽量不被系统杀死

    1. 在Service中重写下面的方法,这个方法有三个返回值, START_STICKY是service被kill掉后自动重写创建 @Override public int onStartComman ...