在纯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")," "; //1001 $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=""){ }