Extension:ParserFunctions/String functions/tr
This extension is obsolete! It has been replaced by ParserFunctions. |
![]() Sürüm durumu: kararlı |
|
---|---|
Uygulama | Ayrıştırıcı işlevi |
Açıklama | Ayrıştırıcıyı dize işlevleriyle geliştirir |
Yazar(lar) | |
En son sürüm | 1.6.1 |
MediaWiki | >= 1.39 |
Lisans | MIT Lisansı |
İndir | See extension ParserFunctions uzantısına bakın |
|
|
Quarterly downloads | 337 (Ranked 11th) |
Public wikis using | 15,766 (Ranked 4th) |
StringFunctions uzantıları, dizeler üzerinde çalışan ek bir parser function kümesini tanımlar. Sürüm 2.0, <nowiki> ile olan tutarsızlıkları çözer ve kurulu sunucuda PHP'nin mbstring uzantısına olan ihtiyacı ortadan kaldırır.
Not: | Bu uzantı eski. Bu işlevlerin tümü artık ParserFunctions uzantısına entegre edildi, ancak yalnızca bir hizmetli LocalSettings.php içinde $wgPFEnableStringFunctions = true; değerini ayarlarsa kullanılabilir. Bu işlevlerin belgeleri burada kalır.MediaWiki'nin özü sihirli kelimeler urlencode ve padleft /padright uygular.
|
---|
İşlevler
editBu modül, işlevleri len
, pos
, rpos
, sub
, pad
, replace
, explode
, urlencode
ve urldecode
tanımlar.
Bu işlevlerin tümü O(n) zaman karmaşıklığında çalışır ve DoS saldırılarına karşı güvenli olmalarını sağlar.
Notlar:
- Bu işlevlerin bazı parametreleri, kötüye kullanımı önlemek için genel ayarlarla sınırlandırılmıştır. Bundan sonraki Sınırlar bölümüne bakın.
- Büyük/küçük harfe duyarlı işlevler için, bazı durumlarda geçici çözüm olarak sihirli kelime
{{lc:dizeniz_buraya}}
kullanabilirsiniz. - Bir MediaWiki sunucusunun bu işlevleri etkinleştirip etkinleştirmediğini belirlemek için Special:Version sayfasındaki desteklenen Genişletilmiş ayrıştırıcı işlevleri listesini kontrol edin.
- Dize uzunluğu
$wgPFStringLengthLimit
değişkeni ile sınırlıdır, varsayılan olarak 1000 şeklindedir.
#len
edit#len
ayrıştırıcı işlevi, 1.2.0 sürümünden itibaren ParserFunctions uzantısıyla birleştirildi- len işlevi, verilen dizenin uzunluğunu döndürür. Sözdizimi:
{{#len:dize}}
Dönüş değeri her zaman dize kaynağındaki bir karakter sayısıdır (şablon çağrılarının genişletilmesinden sonra, ancak HTML'ye dönüştürülmesinden önce). Dize belirtilmezse, dönüş değeri sıfırdır.
- Notlar
- Bu işlev, UTF-8 çok baytlı karakterlerle güvenlidir. Örnek:
{{#len:Žmržlina}}
→8
- Baştaki ve sondaki boşluklar veya yeni satırlar sayılmaz, ancak ara boşluklar ve yeni satırlar dikkate alınır. Örnekler:
{{#len:Icecream }}
→8
{{#len: a b }}
→5
(2 karakter arasında 3 boşluk)
- Kaynak olarak verilen karakterler dönüştürülmez, ancak kaynak biçimlerine göre sayılır.
{{#len: }}
→6
(adlandırılmış karakter kaynakçası).{{#len: }}
→5
(sayısal karakter kaynakçası, burada bir boşluk belirtmesine rağmen göz ardı edilmez).
<nowiki>
gibi etiketler ve diğer etiket uzantıları, içerikleri ayrıştırıcıdan gizlendiğinden her zaman sıfır uzunluğunda olacaktır. Örnek:{{#len:<nowiki>Bu bir </nowiki>testir}}
→3
#pos
edit#pos
ayrıştırıcı işlevi, 1.2.0 sürümünden itibaren ParserFunctions uzantısıyla birleştirildi- pos işlevi, dize içindeki belirli bir arama teriminin konumunu döndürür. Sözdizimi:
{{#pos:dize|arama terimi|offset}}
offset parametresi, belirtilirse, bu işlevin aramaya başlayacağı başlangıç konumunu söyler.
Arama terimi bulunursa, dönüş değeri dize içindeki ilk konumun sıfır tabanlı bir tamsayıdır.
Arama terimi bulunamazsa, işlev boş bir dize döndürür.
Notlar:
- Bu işlev büyük/küçük harfe duyarlıdır.
- Arama teriminin izin verilen maksimum uzunluğu, $wgStringFunctionsLimitSearch genel ayarıyla sınırlıdır.
- Bu işlev, UTF-8 çok baytlı karakterlerle güvenlidir. Örnek:
{{#pos:Žmržlina|žlina}}
, 3 döndürür. - #len ile olduğu gibi,
<nowiki>
ve diğer etiket uzantıları, karakter konumu açısından 1 uzunluğa sahip olarak değerlendirilir. Örnek:{{#pos:<nowiki>Bu bir </nowiki>testtir|test}}
, 1 döndürür.
#rpos
edit#rpos
ayrıştırıcı işlevi, 1.2.0 sürümünden itibaren ParserFunctions uzantısıyla birleştirildi- rpos işlevi, dize içindeki belirli bir arama teriminin son konumunu döndürür. Sözdizimi:
{{#rpos:dize|arama terimi}}
Arama terimi bulunursa, dönüş değeri dize içindeki son konumunun sıfır tabanlı bir tamsayıdır.
Arama terimi bulunamazsa, işlev -1 ile döner.
İpucu: Bunu son sınırlayıcıyı aramak için kullanırken, son sınırlayıcıdan sonraki konumu almak için sonuca +1 ekleyin. Bu, sınırlayıcı bulunmadığında da çalışır, çünkü "-1 +1", verilen değerin başlangıcı olan sıfırdır.
Notlar:
- Bu işlev büyük/küçük harfe duyarlıdır.
- Arama teriminin izin verilen maksimum uzunluğu, $wgStringFunctionsLimitSearch genel ayarıyla sınırlıdır.
- Bu işlev, UTF-8 çok baytlı karakterlerle güvenlidir. Örnek:
{{#rpos:Žmržlina|lina}}
, 4 döndürür. - #len ile olduğu gibi,
<nowiki>
ve diğer etiket uzantıları, karakter konumu açısından 1 uzunluğa sahip olarak değerlendirilir. Örnek:{{#rpos:<nowiki>Bu bir </nowiki>testir|test}}
, 1 döndürür.
#sub
edit#sub
ayrıştırıcı işlevi, 1.2.0 sürümünden itibaren ParserFunctions uzantısıyla birleştirildi- sub işlevi, verilen dizeden bir alt dize döndürür. Sözdizimi:
{{#sub:dize|start|length}}
start parametresi, pozitifse (veya sıfırsa), döndürülecek ilk karakterin sıfır tabanlı bir dizinini belirtir.
Örnek: {{#sub:Icecream|3}}
, cream
döndürür.
{{#sub:Icecream|0|3}}
, Ice
döndürür.
start parametresi negatif ise, sondan kaç karakter döndürüleceğini belirtir.
Örnek: {{#sub:Icecream|-3}}
, eam
döndürür.
length parametresi, varsa ve pozitifse, döndürülen dizenin maksimum uzunluğunu belirtir.
Örnek: {{#sub:Icecream|3|3}}
, cre
döndürür.
length parametresi negatif ise, dizgenin sonundan kaç karakter çıkarılacağını belirtir.
Örnek: {{#sub:Icecream|3|-3}}
, cr
döndürür.
start parametresi negatif ise, sondan kaç karakter döndürüleceğini belirtir. length parametresi, varsa ve pozitifse, döndürülen dizenin başlangıç noktasından itibaren maksimum uzunluğunu belirtir.
Örnek: {{#sub:Icecream|-3|2}}
, ea
döndürür.
Notlar:
- length parametresi sıfır ise kesinlikle kesme işlemi için kullanılmaz.
- Örnek:
{{#sub:Icecream|3|0}}
,cream
döndürür,{{#sub:Icecream|0|3}}
,Ice
döndürür.
- Örnek:
- Eğer start negatif length parametresi ile sondan kesmenin ötesinde bir konumu ifade ediyorsa, boş bir dizge döndürülecektir.
- Örnek:
{{#sub:Icecream|3|-6}}
boş bir dize döndürür.
- Örnek:
- Bu işlev, UTF-8 çok baytlı karakterlerle güvenlidir. Örnek:
{{#sub:Žmržlina|3}}
,žlina
döndürür. - #len olduğu gibi,
<nowiki>
ve diğer etiket uzantıları, karakter konumu açısından 1 uzunluğa sahip olarak değerlendirilir. Örnek:{{#sub:<nowiki>Bu bir </nowiki>testir|1}}
,test
döndürür.
#pad
edit#pad
ayrıştırıcı işlevi ParserFunctions uzantısıyla BİRLEŞTİRİLMEDİ. Bir alternatif olarak, MediaWiki çekirdeği tarafından sağlanan padleft
ve padright
ayrıştırıcı işlevlerine bakın.- pad işlevi, belirli bir genişliğe uzatılmış verilen dizeyi döndürür. Sözdizimi:
{{#pad:dize|length|padstring|direction}}
length parametresi, döndürülen dizenin istenen uzunluğunu belirtir.
padstring parametresi belirtilirse, eksik olan boşluğu doldurmak için kullanılır. Gerektiği kadar çok kez kullanılacak tek bir karakter veya gerektiği kadar çok kez birleştirilecek ve ardından gerekli uzunluğa kırpılacak bir dize olabilir.
Örnek: {{#pad:Ice|10|xX}}
, xXxXxXxIce
döndürür.
Eğer padstring belirtilmemişse, boşluk bırakılır.
direction parametresi, belirtilmişse, şu değerlerden biri olabilir:
left
- dolgu, dizenin sol tarafında olacaktır. Örnek:{{#pad:Ice|5|x|left}}
,xxIce
döndürür.right
- dolgu, dizenin sağ tarafında olacaktır. Örnek:{{#pad:Ice|5|x|right}}
,Icexx
döndürür.center
- dize, döndürülen dizede ortalanacaktır. Örnek:{{#pad:Ice|5|x|center}}
,xIcex
döndürür.
direction belirtilmezse, dolgu dizenin sol tarafında olacaktır.
Döndürülen değer, length karakterlerine uzatılan ve eksik parça(ları)yı doldurmak için padstring kullanılarak verilen dizedir. Verilen dize zaten length uzunsa, ne uzatılır ne de kısaltılır.
Notlar:
- length için izin verilen maksimum değer, $wgStringFunctionsLimitPad genel ayarıyla sınırlıdır.
- Bu işlev, UTF-8 çok baytlı karakterlerle yalnızca kısmen güvenlidir. Bu karakterler, orijinal dizede görünüyorlarsa uygun şekilde ele alınır, ancak dolguda görünüyorlarsa dikkate alınmaz. Örnekler:
{{#pad:Zmrzlina|12|z}}
, zzzzZmrzlina döndürür{{#pad:Žmržlina|12|z}}
, zzzzŽmržlina döndürür{{#pad:Žmržlina|12|ž}}
, žžŽmržlina döndürür (gerekli dolgu karakterlerinin yalnızca yarısı kullanıldığından, belirtilen uzunluktan daha az dolgulu)
- Dolguda
<nowiki>
gibi etiketlere ve diğer etiket uzantılarına izin verilmez. Eğer padstring böyle bir etiket içeriyorsa, kesilecektir.
#replace
edit#replace
ayrıştırıcı işlevi, 1.2.0 sürümünden itibaren ParserFunctions uzantısıyla birleştirildi- replace işlevi, bir arama teriminin tüm oluşumları yerine bir ikame terimle değiştirilen verilen dizeyi döndürür.
{{#replace:dize|arama terimi|yerleştirme terimi}}
arama terimi belirtilmemiş veya boş ise tek bir boşluk aranacaktır.
değiştirme terimi belirtilmemişse veya boşsa, arama teriminin tüm tekrarları dizeden kaldırılacaktır.
Notlar:
- Bu işlev büyük/küçük harfe duyarlıdır.
- arama teriminin izin verilen maksimum uzunluğu, $wgStringFunctionsLimitSearch genel ayarıyla sınırlıdır.
- değiştirme terimi için izin verilen maksimum uzunluk, $wgStringFunctionsLimitReplace genel ayarıyla sınırlıdır.
- değiştirme terimi bir boşluk olsa bile boş bir dize kullanılır. Bu, MediaWiki ayrıştırıcısının bir yan etkisidir. değiştirme terimi olarak bir boşluk kullanmak için, onu nowiki etiketlerine koyun.
- Örnek:
{{#replace:My_little_home_page|_|<nowiki> </nowiki>}}
,My little home page
döndürür. - Bu işe yaramazsa, kendi kendine kapanan iki etiketle
{{#replace:My_little_home_page|_|<nowiki/> <nowiki/>}}
deneyin. - Değiştirme teriminde 'nowiki'nin kabul edilebilir tek kullanımı bu' olduğuna dikkat edin, aksi takdirde nowiki, çıkışa keyfi olarak çok sayıda karakter enjekte ederek $wgStringFunctionsLimitReplace atlamak için kullanılabilir. Bu nedenle, değiştirme terimi içindeki tüm <nowiki> veya diğer etiket uzantıları boşluklarla değiştirilir.
- Örnek:
- Bu işlev, UTF-8 çok baytlı karakterlerle güvenlidir. Örnek:
{{#replace:Žmržlina|ž|z}}
,Žmrzlina
döndürür. - Tek bir metin dizesindeki birden çok öğenin değiştirilmesi gerekiyorsa, Extension:ReplaceSet de düşünülebilir. Bir dizi değiştirme için bir ayrıştırıcı işlevi ekler.
- Büyük/küçük harfe duyarsız değiştirme
Şu anda sözdizimi, büyük/küçük harf duyarlılığı ayarını değiştirmek için bir anahtar sağlamaz. Ancak, biçimlendirmenin sihirli kelimelerini (örn. {{lc:your_string_here}}) kullanabilirsiniz. Örneğin, "Category:" sözünü büyük/küçük harfe bakılmaksızın dizeden kaldırmak istiyorsanız şunu yazabilirsiniz:
{{#replace:{{lc:{{{1}}}}}|category:|}}
Ancak dezavantaj, çıkışının tamamen küçük harf hâline gelmesidir. Muhafazayı değiştirdikten sonra tutmak istiyorsanız, aynı şeyi elde etmek için birden çok iç içe yerleştirme düzeyi (yani birden çok değiştirme çağrısı) kullanmanız gerekir.
#explode
edit#explode
ayrıştırıcı işlevi, 1.2.0 sürümünden itibaren ParserFunctions uzantısıyla birleştirildi- explode işlevi verilen dizgiyi parçalara böler ve parçalardan birini döndürür. Sözdizimi:
{{#explode:dize|sınırlayıcı|pozisyon|sınır}}
sınırlayıcı parametresi, dizeyi parçalara bölmek için kullanılacak bir dizgiyi belirtir. Bu sınırlayıcı dize herhangi bir parçanın parçası değildir ve iki sınırlayıcı dize yan yana geldiğinde aralarında boş bir parça oluştururlar. Bu parametre belirtilmezse tek boşluk kullanılır. sınır parametresi, bağımsız StringFunctions sürümünde değil, yalnızca ParserFunctions'da mevcuttur ve kalan tüm metin son bölüme dahil edilerek değerin bölündüğü parça sayısını sınırlamanıza olanak tanır.
pozisyon parametresi hangi parçanın iade edileceğini belirtir. Parçalar 0'dan sayılır. Bu parametre belirtilmezse ilk parça kullanılır (0 numaralı parça). pozisyon olarak negatif bir değer kullanıldığında, taşlar sondan sayılır. Bu durumda parça numarası -1, son parça anlamına gelir. Örnekler:
{{#explode:Wales, Jimmy|,}}
,Wales
döndürür.{{#explode:And if you tolerate this| |2}}
,you
döndürür.{{#explode:String/Functions/Code|/|-1}}
,Code
döndürür.{{#explode:Split%By%Percentage%Signs|%|2}}
,Percentage
döndürür.{{#explode:And if you tolerate this thing| |2|3}}
,you tolerate this thing
döndürür.
Döndürülen değer, pozisyon parçadır. pozisyon belirttiğinden daha az parça varsa, boş bir dize döndürülür.
Notlar:
- Bu işlev büyük/küçük harfe duyarlıdır.
- sınırlayıcı izin verilen maksimum uzunluğu, $wgStringFunctionsLimitSearch genel ayarıyla sınırlıdır.
- Bu işlev, UTF-8 çok baytlı karakterlerle güvenlidir. Örnek:
{{#explode:Žmržlina|ž|1}}
,lina
döndürür.
#urlencode: ve #urldecode:
edit#urlencode
ayrıştırıcı işlevleri, ParserFunctions uzantısıyla BİRLEİŞTİRİLMEDİ. Alternatif olarak, MediaWiki çekirdeği tarafından sağlanan urlencode
ayrıştırıcı işlevine bakın. #urldecode
başlangıçta ParserFunctions ile birleştirilmedi, ancak daha sonra eklendi (2010'da 1b75afd18d3695bdb6ffbfccd0e4aec064785363) tarafından eklendi.Bu iki işlev birlikte çalışır: #urlencode bir dizeyi URL güvenli sözdizimine dönüştürür ve #urldecode böyle bir dizeyi geri dönüştürür. Sözdizimi:
{{#urlencode:değer}} {{#urldecode:değer}}
Notlar:
- Bu işlevler, PHP'nin urlencode() ve urldecode() işlevlerini doğrudan açığa çıkararak çalışır.
- Bir sayfanın içindeki çengel için {{#urlencode}} yerine {{anchorencode}} kullanın. {{anchorencode}} çağrısının sonuçları, [[#link]] sözdizimi ile oluşturulan sayfa içi kaynakça ile uyumluyken, {{#urlencode}} oluşturulan değerler mutlaka böyle değildir.
- urlencode, Extension:ParserFunctions/tr içine entegre edilmiştir. ParserFunction uzantısında işlevin {{#urlencode:value}} yerine {{urlencode:value}} ile çağrıldığını unutmayın. ParserFunctions uzantısı, 1.18 sürümünden itibaren MediaWiki'ye entegre edilmiştir; örnekler için Help:Sihirli kelimeler sayfasına bakın.
- urldecode tam tersi şekilde çalışır ve URL kodlama dizelerini okunabilir dizelere dönüştürür. Bir karakter kodu kaynağı www.w3schools.com adresinde bulunabilir.
Ayrıca bakınız
edit- ParserFunctions ve ilgili yardım
- PhpTags Functions, PHP sözdizimini kullanarak dizelerle çalışmak için yetmişten fazla işlev içerir.
- Extension:StringFunctionsEscaped — Çıkış karakterlerini kullanmanıza da izin veren işlevler (\n, \t… gibi)
- ReplaceSet — Tek bir metin dizesinde bir dizi değiştirme gerçekleştirmeniz gerektiğinde, iç içe #replace komutlarını kullanmak için mükemmel bir alternatif
- Variables
Not
editNot: | Wikimedia kullanıcıları | ||
---|---|---|---|
2013'te bu uzantının Wikimedia wiki'lerinde asla etkinleştirilemeyeceği belirlendi (phabricator:T8455 sayfasına bakın). Geçici bir çözüm olarak, Dize-işleyen şablonlar veya Module:String kullanın. |