Latte szűrők
A szűrők olyan függvények, amelyek megváltoztatják vagy formázzák az adatokat a kívánt formára. Ez az összefoglaló a rendelkezésre álló beépített szűrőkről.
capitalize |
kisbetűs, minden szó első betűje nagybetűs |
firstUpper |
az első betűt nagybetűvé teszi |
lower |
a karakterláncot kisbetűvé teszi |
upper |
nagybetűvé teszi a karakterláncot |
ceil |
kerekít egy számot egy adott pontosságig |
floor |
Egy számot adott pontosságra kerekít lefelé |
round |
kerekít egy számot adott pontosságra |
escapeUrl |
az URL-ben szereplő paramétert elrejti |
noescape |
változó nyomtatása szaggatás nélkül |
query |
lekérdezési karakterláncot generál az URL-ben |
A HTML (escapeHtml
és escapeHtmlComment
), XML (escapeXml
), JavaScript
(escapeJs
), CSS (escapeCss
) és iCalendar (escapeICal
) számára is vannak escaping
szűrők, amelyeket a Latte a kontextustudatos
escapingnek köszönhetően maga használ, és nem kell megírni őket.
checkUrl |
szanálja a href attribútumon belül használt karakterláncot |
nocheck |
megakadályozza az automatikus URL-szanálást |
A src
és a href
attribútumokat automatikusan ellenőrzi, így a checkUrl
szűrőt szinte nem is kell használni.
Minden beépített szűrő UTF-8 kódolású karakterláncokkal működik.
Használat
A Latte lehetővé teszi a szűrők hívását a pipajel jelölés használatával (az előző szóköz megengedett):
A szűrők láncolhatók, ebben az esetben balról jobbra haladva alkalmazandók:
A paraméterek a szűrő neve után kerülnek, kettősponttal vagy vesszővel elválasztva:
A szűrők kifejezésekre alkalmazhatók:
Egyéni szűrők így regisztrálhatók:
Egy sablonban így használjuk:
Szűrők
batch (int $length, mixed $item): array
Szűrő, amely leegyszerűsíti a lineáris adatok táblázatos formában történő felsorolását. Egy tömb tömböt ad vissza a megadott számú elemmel. Ha megad egy második paramétert, akkor ezt az utolsó sor hiányzó elemeinek kitöltésére használja.
Nyomtatás:
Lásd még a group és az iterateWhile címkét.
breakLines
HTML-sorszünetet illeszt be minden újsor előtt.
bytes (int $precision=2)
A bájtokban megadott méretet ember által olvasható formába formázza. Ha a nyelvi tartomány be van állítva, akkor a megfelelő tizedes és ezres elválasztójeleket használja.
ceil (int $precision=0)
Egy számot adott pontosságra kerekít.
capitalize
Visszaadja az érték címsoros változatát. A szavak nagybetűkkel kezdődnek, az összes többi karakter kisbetűs.
PHP-bővítményt igényel: mbstring
.
Lásd még firstUpper, lower, upper.
checkUrl
Kényszeríti az URL szanálását. Ellenőrzi, hogy a változó tartalmaz-e webes URL-t (azaz HTTP/HTTPS protokollt), és megakadályozza a biztonsági kockázatot jelentő linkek írását.
Nyomtat:
Lásd mégeck.
clamp (int|float $min, int|float $max)
A min és max tartományba szorított értéket adja vissza.
Létezik függvényként is.
dataStream (string $mimetype=detect)
A tartalmat adat URI-sémává alakítja át. Használható képek HTML- vagy CSS-be való beillesztésére anélkül, hogy külső fájlokat kellene linkelni.
Legyen egy kép egy változóban $img = Image::fromFile('obrazek.gif')
, akkor
Kinyomtatja például:
PHP-bővítményt igényel: fileinfo
.
date (string $format)
A dátumot és az időt a date PHP-funkció által használt maszknak megfelelően
formázza. A szűrő elfogadja a dátumot UNIX időbélyeg formátumban, sztringként vagy DateTimeInterface
objektumként.
Lásd még localDate.
escapeUrl
Kikerül egy változót, amelyet URL-ben paraméterként kell használni.
Lásd még query.
explode (string
$separator=''
)
Egy karakterláncot a megadott elválasztójel alapján szétválaszt, és karakterláncok tömbjét adja vissza. Alias a
split
számára.
Ha az elválasztó üres karakterlánc (alapértelmezett érték), akkor a bemenet különálló karakterekre lesz felosztva:
Használhatja a split
aliast is:
Lásd még: implode.
first
Visszaadja a tömb első elemét vagy a karakterlánc első karakterét:
floor (int $precision=0)
Egy számot adott pontosságra kerekít.
firstUpper
Az érték első betűjét nagybetűvé alakítja. PHP-bővítményt igényel mbstring
.
Lásd még nagybetű, kisbetű, nagybetű.
group (string|int|\Closure $by): array
A szűrő különböző kritériumok szerint csoportosítja az adatokat.
Ebben a példában a táblázat sorai a categoryId
oszlop alapján vannak csoportosítva. A kimenet egy tömb
tömbökből álló tömb, ahol a kulcs a categoryId
oszlopban szereplő érték. Olvassa el a részletes utasításokat.
Lásd még a batch, a group függvény és az iterateWhile tag.
implode (string $glue=''
)
Visszaad egy stringet, amely a tömbben lévő stringek összevonása. Alias a következőhöz: join
.
A join
alias is használható:
indent (int $level=1, string
$char="\t"
)
A szöveg balról történő behúzása egy adott számú tabulátorral vagy más karakterrel, amelyet a második választható argumentumban adunk meg. Az üres sorok nem kerülnek behúzásra.
Nyomtatás:
last
Visszaadja a tömb utolsó elemét vagy a karakterlánc utolsó karakterét:
length
Egy karakterlánc vagy tömb hosszát adja vissza.
- a stringek esetében UTF-8 karakterekben adja vissza a hosszúságot.
- tömbök esetén az elemek számát adja vissza.
- a Countable interfészt megvalósító objektumok esetében a count() visszatérési értékét használja.
- az IteratorAggregate interfészt megvalósító objektumok esetében az iterator_count() visszatérési értékét használja.
localDate (?string $format=null, ?string $date=null, ?string $time=null)
A dátum és az idő formázása a nyelvterületnek megfelelően,
így biztosítva az időadatok konzisztens és lokalizált megjelenítését a különböző nyelveken és régiókban. A szűrő
a dátumot UNIX időbélyegként, stringként vagy DateTimeInterface
objektumként fogadja el.
Ha a szűrőt paraméterek nélkül használja, akkor a dátumot hosszú formátumban adja ki, ahogyan azt a továbbiakban kifejtjük.
a) A formátum használata
A format
paraméter leírja, hogy mely időösszetevőket kell megjeleníteni. Betűkódokat használ, ahol az
ismétlések száma befolyásolja a kimenet szélességét:
Év | y / yy / yyyy |
2024 / 24 / 2024 |
Hónap | M / MM / MMM / MMMM |
8 / 08 / aug. / augusztus |
Nap | d / dd / E / EEEE |
1 / 01 / V / vasárnap |
Hour | j / H / h |
preferred / 24-hour / 12-hour |
Perc | m / mm |
5 / 05 (2 számjegy, ha másodpercekkel kombinálják) |
Másodperc | s / ss |
8 / 08 (2 számjegy, ha percekkel kombinálva) |
A kódok sorrendje a formátumban nem számít, mivel az összetevők sorrendje a helyi konvencióknak megfelelően jelenik
meg. Ezért a formátum helytől független. Például a yyyyMMMMd
formátum a en_US
nyelvjárásban a
April 15, 2024
, míg a cs_CZ
nyelvjárásban a 15. dubna 2024
formátumot adja ki:
locale: | hu-HU | en_US |
---|---|---|
format: 'dMy' |
2024. 08. 10. | 8/10/2024 |
format: 'yM' |
2024. 8. | 8/2024 |
format: 'yyyyMMMM' |
2024. augusztus | August 2024 |
format: 'MMMM' |
augusztus | August |
format: 'jm' |
17:54 | 5:54 PM |
format: 'Hm' |
17:54 | 17:54 |
format: 'hm' |
du. 5:54 | 5:54 PM |
b) Előre beállított stílusok használata
A date
és a time
paraméterek határozzák meg a dátum és az idő megjelenítésének
részletességét. Több szint közül választhat: full
, long
, medium
, short
.
Megjelenítheti csak a dátumot, csak az időt vagy mindkettőt:
locale: | hu-HU | en_US |
---|---|---|
date: short |
1978. 01. 23. | 1/23/78 |
date: medium |
1978. jan. 23. | Jan 23, 1978 |
date: long |
1978. január 23. | January 23, 1978 |
date: full |
1978. január 23., hétfő | Monday, January 23, 1978 |
time: short |
8:30 | 8:30 AM |
time: medium |
8:30:59 | 8:30:59 AM |
time: long |
8:30:59 CET | 8:30:59 AM GMT+1 |
date: short, time: short |
1978. 01. 23. 8:30 | 1/23/78, 8:30 AM |
date: medium, time: short |
1978. jan. 23. 8:30 | Jan 23, 1978, 8:30 AM |
date: long, time: short |
1978. január 23. 8:30 | January 23, 1978 at 8:30 AM |
A dátumhoz használhatja a relative-
előtagot is (pl. relative-short
), amely a jelenhez közeli
dátumok esetében a yesterday
, today
vagy tomorrow
, egyébként a szokásos módon
jelenik meg.
Lásd még dátum.
lower
Egy értéket kisbetűvé alakít. PHP-bővítményt igényel mbstring
.
Lásd még capitalize, firstUpper, upper.
nocheck
Megakadályozza az automatikus URL-szanálást. A Latte automatikusan ellenőrzi, hogy a változó tartalmaz-e webes URL-t (azaz HTTP/HTTPS protokollt), és megakadályozza a biztonsági kockázatot jelentő linkek írását.
Ha a hivatkozás más sémát használ, például javascript:
vagy data:
, és biztos a tartalmában,
akkor a |nocheck
segítségével kikapcsolhatja az ellenőrzést.
Nyomtatások:
Lásd még checkUrl.
noescape
Letiltja az automatikus escapinget.
Nyomtat:
A noescape
szűrő visszaélése XSS sebezhetőséghez vezethet! Soha ne használja, hacsak nem
teljesen biztos abban, hogy mit csinál, és hogy a nyomtatott karakterlánc megbízható forrásból származik.
number (int $decimals=0, string
$decPoint='.'
, string $thousandsSep=','
)
Egy számot a megadott számú tizedesjegyig formáz. Ha a nyelvi terület be van állítva, akkor a megfelelő tizedes és ezres elválasztójeleket használja.
number (string $format)
A format
paraméter lehetővé teszi, hogy a számok megjelenését pontosan az Ön igényei szerint határozza
meg. Beállított nyelvterületet igényel. A formátum több
speciális karakterből áll, amelyek teljes leírása a DecimalFormat dokumentációban
található:
- <c id=6/> kötelező számjegy, mindig megjelenik, még akkor is, ha nulla.
#
opcionális számjegy, csak akkor jelenik meg, ha a számnak van számjegye az adott helyen.@
szignifikáns számjegy, segít a számot bizonyos számú szignifikáns számjeggyel megjeleníteni..
a tizedesvessző helyét jelöli (vessző vagy pont, a területi adattól függően).,
számjegycsoportok, általában ezrek elválasztására szolgál.%
megszorozza a számot 100-zal, és hozzáadja a százalékjelet.
Nézzünk néhány példát. Az első példában a két tizedesjegy kötelező, a másodikban opcionális. A harmadik példa mindkét oldalon nullákkal való kitöltést mutat, a negyedik példa pedig csak a meglévő számjegyeket jeleníti meg:
A szignifikáns számjegyek határozzák meg, hogy a tizedesvesszőtől függetlenül hány számjegyet kell megjeleníteni, szükség esetén kerekítve a számot:
Egy szám százalékban történő megjelenítésének egyszerű módja. A számot megszorozzuk 100-zal, és hozzáadjuk a
%
jelet:
A pozitív és negatív számok számára eltérő formátumot határozhatunk meg, amelyet egy ;
karakterrel
választunk el. Így például a pozitív számok a +
jellel jeleníthetők meg:
Ne feledje, hogy a számok tényleges megjelenése a helyi beállításoktól függően változhat. Egyes országokban például pont helyett vesszőt használnak tizedesválasztóként. Ez a szűrő automatikusan figyelembe veszi ezt, így nem kell aggódnia emiatt.
padLeft (int $length, string
$pad=' '
)
Egy adott hosszúságú karakterláncot balról egy másik karakterlánccal kitölti.
padRight (int $length, string
$pad=' '
)
Egy adott hosszúságú karakterláncot egy másik, jobbról jövő karakterlánccal kitölti.
query
Dinamikusan generál egy lekérdezési karakterláncot az URL-ben:
Nyomtat:
A null
értékű kulcsok nem szerepelnek.
Lásd még escapeUrl.
random
Visszaadja a tömb véletlenszerű elemét vagy a karakterlánc karakterét:
repeat (int $count)
Megismétli a karakterláncot x-szer.
replace (string|array $search, string
$replace=''
)
A keresett karakterlánc minden előfordulását helyettesítő karakterlánccal helyettesíti.
Egyszerre több csere is elvégezhető:
replaceRE (string $pattern, string
$replace=''
)
Az összes előfordulást helyettesíti a reguláris kifejezésnek megfelelően.
reverse
Megfordítja a megadott karakterláncot vagy tömböt.
round (int $precision=0)
Egy számot adott pontosságra kerekít.
slice (int $start, ?int $length=null, bool $preserveKeys=false)
Egy tömb vagy egy karakterlánc egy szeletének kivonása.
A slice-szűrő a array_slice
PHP-funkcióként működik tömbök esetében, a mb_substr
pedig
karakterláncok esetében, UTF-8 módban a iconv_substr
-re való visszalépéssel.
Ha a kezdet nem negatív, akkor a szekvencia a változóban ezzel a kezdőponttal kezdődik. Ha a start negatív, akkor a szekvencia a változó végétől ilyen messze kezdődik.
Ha a length értéke pozitív, akkor a szekvencia legfeljebb ennyi elemet tartalmaz. Ha a változó rövidebb, mint a hossz, akkor csak a rendelkezésre álló változóelemek lesznek jelen. Ha a hossz meg van adva és negatív, akkor a sorozat ennyi elemmel a változó vége előtt fog megállni. Ha nem adjuk meg, akkor a szekvencia az eltolódástól a változó végéig mindent tartalmazni fog.
A Filter alapértelmezés szerint átrendezi és visszaállítja az integer tömb kulcsát. Ez a viselkedés megváltoztatható a preserveKeys true értékre állításával. A string kulcsok ettől a paramétertől függetlenül mindig megmaradnak.
sort (?Closure $comparison, string|int|\Closure|null $by=null, string|int|\Closure|bool $byKey=false)
A szűrő egy tömb vagy iterátor elemeit rendezi, miközben megőrzi az asszociatív kulcsokat. Ha egy területi beállítás van megadva, a rendezés annak szabályait követi, kivéve, ha egyéni összehasonlító függvény van megadva.
A tömb fordított sorrendbe rendezve.
Megadhat egy egyéni összehasonlító függvényt a rendezéshez (a példa azt mutatja, hogyan lehet a legnagyobbtól a legkisebbig megfordítani a rendezést):
A |sort
szűrő lehetővé teszi az elemek kulcs szerinti rendezését is:
Ha egy táblázatot egy adott oszlop szerint kell rendezni, használhatja a by
paramétert. A példában
szereplő 'name'
érték azt adja meg, hogy a rendezés a $row->name
vagy a szerint történjen.
$row['name']
, attól függően, hogy a $row
egy tömb vagy egy objektum:
Meghatározhat egy visszahívási függvényt is, amely meghatározza a rendezés értékét:
A byKey
paraméter ugyanígy használható.
spaceless
Eltávolítja a felesleges szóközöket a kimenetből. Használhatod a strip
aliast is.
Nyomtat:
stripHtml
A HTML-t egyszerű szöveggé alakítja. Vagyis eltávolítja a HTML-címkéket, és a HTML-egységeket szöveggé alakítja.
Az így kapott sima szöveg természetesen tartalmazhat olyan karaktereket, amelyek HTML-címkéket képviselnek, például a
'<p>'|stripHtml
átváltozik <p>
. Soha ne adja ki az eredményül kapott szöveget a
|noescape
címmel, mivel ez biztonsági réshez vezethet.
substr (int $offset, ?int $length=null)
Kivonja egy karakterlánc egy szeletét. Ezt a szűrőt felváltotta a slice szűrő.
translate (…$args)
Kifejezéseket fordít le más nyelvekre. Ahhoz, hogy a szűrő elérhető legyen, be kell állítania a fordítót. A címkéket is használhatja a fordításhoz.
trim (string
$charlist=" \t\n\r\0\x0B\u{A0}"
)
Vezető és követő karakterek eltávolítása, alapértelmezés szerint szóköz.
truncate (int $length, string
$append='…'
)
Rövidíti a karakterláncot a megadott maximális hosszúságra, de megpróbálja megőrizni az egész szavakat. Ha a karakterlánc csonkolva van, ellipszist ad a végére (ez a második paraméterrel módosítható).
upper
Egy értéket nagybetűvé alakít. A mbstring
PHP-bővítményt igényli.
Lásd még capitalize, firstUpper, lower.
webalize
Átalakítja ASCII-re.
A szóközöket kötőjelekké alakítja. Eltávolítja a nem alfanumerikus karaktereket, aláhúzásokat vagy kötőjeleket. Átalakítja kisbetűvé. Eltávolítja a vezető és az utolsó szóközöket is.
Szükséges a nette/utils csomag.