Twig 的Filters学习_PHP教程
目前支持的过滤器包括
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的专栏

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

오픈소스 소프트웨어의 장단점: 오픈소스 프로젝트의 장단점을 이해하려면 구체적인 코드 예제가 필요합니다. 오늘날 디지털 시대에 오픈소스 소프트웨어는 점점 더 많은 관심과 존경을 받고 있습니다. 오픈소스 소프트웨어는 협력과 공유의 정신을 바탕으로 한 소프트웨어 개발 모델로서 다양한 분야에서 널리 사용되고 있습니다. 그러나 오픈 소스 소프트웨어의 많은 장점에도 불구하고 몇 가지 과제와 제한 사항도 있습니다. 이 기사에서는 오픈 소스 소프트웨어의 장단점을 자세히 살펴보고 특정 코드 예제를 통해 오픈 소스 프로젝트의 장단점을 보여줍니다. 1. 오픈소스 소프트웨어의 장점 1.1 개방성과 투명성 오픈소스 소프트웨어

처음부터 Pygame 배우기: 전체 설치 및 구성 튜토리얼, 특정 코드 예제 필요 소개: Pygame은 Python 프로그래밍 언어를 사용하여 개발된 오픈 소스 게임 개발 라이브러리로, 개발자가 다양한 유형을 쉽게 만들 수 있도록 풍부한 기능과 도구를 제공합니다. 게임의. 이 기사는 처음부터 Pygame을 배우는 데 도움이 될 것이며, 완전한 설치 및 구성 튜토리얼과 빠른 시작을 위한 특정 코드 예제를 제공할 것입니다. 1부: Python 및 Pygame 설치 먼저 다음 사항을 확인하세요.

PyCharm Community Edition은 충분한 플러그인을 지원합니까? 구체적인 코드 예제가 필요 소프트웨어 개발 분야에서 Python 언어가 점점 더 널리 사용됨에 따라 전문적인 Python 통합 개발 환경(IDE)인 PyCharm이 개발자들에게 선호되고 있습니다. PyCharm은 Professional 버전과 Community 버전의 두 가지 버전으로 나누어집니다. Community 버전은 무료로 제공되지만 Professional 버전에 비해 플러그인 지원이 제한됩니다. 그렇다면 문제는 PyCharm Community Edition이 충분한 플러그인을 지원하느냐는 것입니다. 이 기사에서는 특정 코드 예제를 사용하여

C 언어 학습의 매력: 프로그래머의 잠재력을 여는 것 지속적인 기술 발전으로 컴퓨터 프로그래밍은 많은 주목을 받는 분야가 되었습니다. 많은 프로그래밍 언어 중에서 C 언어는 항상 프로그래머들에게 사랑을 받아 왔습니다. C 언어의 단순성, 효율성 및 폭넓은 적용 덕분에 많은 사람들이 프로그래밍 분야에 입문하는 첫 번째 단계는 C 언어입니다. 이 기사에서는 C 언어 학습의 매력과 C 언어 학습을 통해 프로그래머의 잠재력을 발휘하는 방법에 대해 설명합니다. 우선, C 언어 학습의 매력은 단순함에 있습니다. C언어는 다른 프로그래밍 언어에 비해

Word에서 텍스트 내용을 편집할 때 수식 기호를 입력해야 하는 경우가 있습니다. 어떤 사람들은 Word에서 근수를 입력하는 방법을 모르기 때문에 편집자에게 Word에서 근수를 입력하는 방법에 대한 튜토리얼을 친구들과 공유해달라고 요청했습니다. 그것이 내 친구들에게 도움이 되기를 바랍니다. 먼저 컴퓨터에서 Word 소프트웨어를 연 다음 편집하려는 파일을 열고 루트 기호를 삽입해야 하는 위치로 커서를 이동합니다. 아래 그림 예를 참조하세요. 2. [삽입]을 선택한 후, 기호에서 [수식]을 선택하세요. 아래 그림의 빨간색 원과 같이 3. 아래의 [새 수식 삽입]을 선택하세요. 아래 그림의 빨간색 원과 같이 4. [부수]를 선택한 후 해당 부수를 선택합니다. 아래 그림의 빨간색 원에 표시된 대로:

제목: Go 언어의 주요 기능을 처음부터 배우세요. Go 언어는 간단하고 효율적인 프로그래밍 언어로 개발자들이 선호합니다. Go 언어에서 main 함수는 진입 함수이고, 모든 Go 프로그램은 프로그램의 진입점으로 main 함수를 포함해야 합니다. 이 글에서는 Go 언어의 주요 기능을 처음부터 배우는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 먼저 Go 언어 개발 환경을 설치해야 합니다. 공식 홈페이지(https://golang.org)에 접속하시면 됩니다.

C++ 소프트웨어는 중국어 지원을 어떻게 구현합니까? 세계화 과정에서 중국어를 포함한 여러 언어를 지원해야 하는 소프트웨어가 점점 더 많아지고 있습니다. C++ 개발에서 중국어 지원 구현은 복잡하지 않으며 몇 가지 기본 기술과 도구만 있으면 쉽게 완료할 수 있습니다. 이 기사에서는 C++ 소프트웨어에서 중국어 지원을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 유니코드 인코딩을 사용하십시오. 중국어를 지원하려면 먼저 소프트웨어가 내부적으로 유니코드 인코딩을 사용하는지 확인해야 합니다. 유니코드는 표준이다

1. 본 수업에서는 주로 [1: 정렬 원리]를 설명합니다. 먼저 건물, 유적지 등 일상생활을 분석합니다. 2. [정렬의 역할]: 콘텐츠 관계를 강조하고 페이지 비전을 통일합니다. 3. 이번 강의는 [실제 사례 분석] [1단계: 과도하고 부적절한 미화, 특수효과 삭제, 2단계: 글꼴 및 색상 통일]부터 시작됩니다. 4. 먼저 [글꼴을 Microsoft YaHei로] 변경한 후 [페이지 색상 변경]을 그림과 같이 조판합니다. 5. 그런 다음 [타임라인 그리기]로 이동하여 [직선-두께, 색상 수정]을 삽입한 다음 계속해서 [링-채우기 끄기, 검정색 획 켜기]를 삽입한 다음 [복사-채우기를 검정색으로 복사]를 삽입합니다. [정렬할 두 개 선택 ]'버튼 효과'를 생성한 후 입력하면 그림과 같은 효과가 나타납니다.
