• php模板引擎之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"),"
    ";  //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);//返回数字
    查找字符串在另一字符串中最后一次出现的位置(不区分大小写)

    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=""){
    }
  • 相关阅读:
    Java Web
    Tomcat学习笔记
    Java Web学习笔记(2)
    Java Web学习笔记(1)
    2017-2018-1 Java演绎法 小组会议及交互汇总
    【Alpha版本】冲刺阶段
    【Alpha版本】冲刺阶段
    【Alpha版本】冲刺阶段
    【Alpha版本】冲刺阶段
    【Alpha版本】冲刺阶段
  • 原文地址:https://www.cnblogs.com/camille666/p/php_template_engine_featherview.html
Copyright © 2020-2023  润新知