• 技术文章 >后端开发 >php教程

    Twig 的Filters学习_PHP教程

    2016-07-13 17:48:07原创358
    目前支持的过滤器包括

    date format replace number_format url_encode json_encode convert_encoding title capitalize nl2br upper lower striptags join reverse length sort default keys escape raw merge


    date过滤器
    1.1版本新增时区支持,1.5版本增加了默认的日期格式。
    这个过滤器和php的date函数无限类似
    {{ post.published_at|date("m/d/Y") }}
    {{ "now"|date("m/d/Y") }}
    {{ post.published_at|date("m/d/Y") }}
    {{ "now"|date("m/d/Y") }}
    如果想在格式里输出字母,需要在每个字母前输入\\
    {{ post.published_at|date("F jS \\a\\t g:ia") }}
    {{ post.published_at|date("F jS \\a\\t g:ia") }}注意:经过我的测试,不能输入中文字符,这样写不行。。 {{ 'now'|date("F jS \\上\\午 g:ia") }}
    你可以指定时区
    {{ post.published_at|date("m/d/Y", "Europe/Paris") }}
    {{ post.published_at|date("m/d/Y", "Europe/Paris") }}
    如果你提供的格式化字符串是不支持,会自动使用默认格式 (F j, Y H:i)你可以用代码修改这个默认格式
    $twig = new Twig_Environment($loader);
    $twig->getExtension('core')->setDateFormat('d/m/Y', '%d days');
    $twig = new Twig_Environment($loader);
    $twig->getExtension('core')->setDateFormat('d/m/Y', '%d days');

    format过滤器
    和php的printf函数一样,用来替换占位符
    {{ "I like %s and %s."|format(foo, "bar") }}

    {# returns I like foo and bar
    if the foo parameter equals to the foo string. #}
    {{ "I like %s and %s."|format(foo, "bar") }}

    {# returns I like foo and bar
    if the foo parameter equals to the foo string. #}

    replace过滤器
    这个自己看吧{{ "I like %this% and %that%."|replace({'%this%': foo, '%that%': "bar"}) }}

    {# returns I like foo and bar
    if the foo parameter equals to the foo string. #}
    {{ "I like %this% and %that%."|replace({'%this%': foo, '%that%': "bar"}) }}

    {# returns I like foo and bar
    if the foo parameter equals to the foo string. #}
    number_format过滤器
    1.5版本新增过滤器。
    他是php函数 number_format的一个包装 直接见函数参考吧
    {{ 200.35|number_format }}
    {{ 200.35|number_format }}另外就是可以用php来修改默认的格式
    $twig = new Twig_Environment($loader);
    $twig->getExtension('core')->setNumberFormat(3, ',', '.');
    $twig = new Twig_Environment($loader);
    $twig->getExtension('core')->setNumberFormat(3, ',', '.');
    url_encode过滤器
    这个直接使用 urlencode函数
    {{ data|url_encode() }}
    {{ data|url_encode() }}


    json_encode过滤器
    直接使用json_encode函数
    {{ data|json_encode() }}
    {{ data|json_encode() }}


    convert_encoding过滤器
    1.4版本新加内容
    转换一个字符串,第一个参数是输出编码,第二个参数是输入编码
    本函数依赖于iconv 或者mbstring 所以至少需要安装一个
    {{ data|convert_encoding('UTF-8', 'iso-2022-jp') }}
    {{ data|convert_encoding('UTF-8', 'iso-2022-jp') }}

    title过滤器
    会让每个单词的首字母大写。
    {{ 'my first car'|title }}

    {# outputs 'My First Car' #}
    {{ 'my first car'|title }}

    {# outputs 'My First Car' #}
    capitalize过滤器
    会把字符串变成 首字母大写,其余字母小写的格式
    {{ 'my first car'|capitalize }}

    {# outputs 'My first car' #}
    {{ 'my first car'|capitalize }}

    {# outputs 'My first car' #}

    nl2br过滤器
    会把换行符\n 变成

    {{ "I like Twig.\nYou will like it too."|nl2br }}
    {# outputs

    I like Twig.

    You will like it too.

    #}
    {{ "I like Twig.\nYou will like it too."|nl2br }}
    {# outputs

    I like Twig.

    You will like it too.

    #}

    upper lower 过滤器
    让字符串变大小写
    striptags过滤器
    直接使用的是strip_tags函数
    join过滤器
    这个我很喜欢,跟python的join一样,用来将一个数组的内容连接起来,并用指定的字符串分割。
    {{ [1, 2, 3]|join }}
    {# returns 123 #}
    {{ [1, 2, 3]|join('|') }}
    {# returns 1|2|3 #}
    {{ [1, 2, 3]|join }}
    {# returns 123 #}
    {{ [1, 2, 3]|join('|') }}
    {# returns 1|2|3 #}

    reverse 过滤器
    反转一个数组,或者是一个实现了Iterator接口的对象
    {% for use in users|reverse %}
    ...
    {% endfor %}
    {% for use in users|reverse %}
    ...
    {% endfor %}

    length过滤器
    返回一个数组或者字符串的长度
    {% if users|length > 10 %}
    ...
    {% endif %}
    {% if users|length > 10 %}
    ...
    {% endif %}

    sort过滤器
    使用的是sort函数
    {% for use in users|sort %}
    ...
    {% endfor %}
    {% for use in users|sort %}
    ...
    {% endfor %}
    default过滤器
    当变量没定义或者为空的时候,返回预先设置的内容
    {{ var|default('var is not defined') }}

    {{ var.foo|default('foo item on var is not defined') }}

    {{ var['foo']|default('foo item on var is not defined') }}

    {{ ''|default('passed var is empty') }}
    {{ var|default('var is not defined') }}

    {{ var.foo|default('foo item on var is not defined') }}

    {{ var['foo']|default('foo item on var is not defined') }}

    {{ ''|default('passed var is empty') }}

    keys过滤器
    返回key数组
    {% for key in array|keys %}
    ...
    {% endfor %}
    {% for key in array|keys %}
    ...
    {% endfor %}

    escape过滤器
    主要转义 & < > ' " 。并且它有个简写方式 e。
    {{ user.username|escape }}
    {{ user.username|e }}
    {{ user.username|escape }}
    {{ user.username|e }}还可以转义 js
    {{ user.username|escape('js') }}
    {{ user.username|e('js') }}
    {{ user.username|escape('js') }}
    {{ user.username|e('js') }}实际上他使用的是php函数 htmlspecialchars

    raw过滤器
    用于在autoescape标签内部,标记出不需要转义的内容。
    {% autoescape true %}
    {{ var|raw }} {# var won't be escaped #}
    {% endautoescape %}
    {% autoescape true %}
    {{ var|raw }} {# var won't be escaped #}
    {% endautoescape %}

    merge过滤器
    用来合并数组
    {% set items = { 'apple': 'fruit', 'orange': 'fruit' } %}

    {% set itemsitems = items|merge({ 'peugeot': 'car' }) %}

    {# items now contains { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'car' } #}

    摘自 jiaochangyun的专栏

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478458.htmlTechArticle目前支持的过滤器包括 date format replace number_format url_encode json_encode convert_encoding title capitalize nl2br upper lower striptags join reverse length sort defau...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Twig Filters 学习 目前 支持 过滤器 包括 date format replace number
    上一篇:PHP魔术方法的简单调用实例_PHP教程 下一篇:超囧的图片链接批量获取和下载_PHP教程
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 详细介绍PHP中时间处理类Carbon的用法• 分享一个neo4j(图形数据库)的PHP库!• 一文聊聊php5.4的特性【总结】• PHP商城那个好? 2022年十大开源PHP商城【分享】• PHP常量两种定义方法:define和const有什么区别
    1/1

    PHP中文网