Extension:ParserFunctions/String functions/tr

StringFunctions uzantıları, dizeler üzerinde çalışan ek bir parser function kümesini tanımlar. Sürüm 2.0, &lt;nowiki> ile olan tutarsızlıkları çözer ve kurulu sunucuda PHP'nin mbstring uzantısına olan ihtiyacı ortadan kaldırır.

İşlevler
Bu modül, işlevleri,  ,  ,  ,  ,  ,  ,   ve   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:
 * 1) 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.
 * 2) Büyük/küçük harfe duyarlı işlevler için, bazı durumlarda geçici çözüm olarak sihirli kelime   kullanabilirsiniz.
 * 3) 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.
 * 4) Dize uzunluğu  değişkeni ile sınırlıdır, varsayılan olarak 1000 şeklindedir.

#len

 * 1) len işlevi, verilen dizenin uzunluğunu döndürür. Sözdizimi:

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:
 * 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:
 * →  (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.
 * →  (adlandırılmış karakter kaynakçası).
 * →  (sayısal karakter kaynakçası, burada bir boşluk belirtmesine rağmen göz ardı edilmez).
 * 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:
 * →  (sayısal karakter kaynakçası, burada bir boşluk belirtmesine rağmen göz ardı edilmez).
 * 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:

#pos

 * 1) pos işlevi, dize içindeki belirli bir arama teriminin konumunu döndürür. Sözdizimi:

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:, 3 döndürür.
 * #len ile olduğu gibi, ve diğer etiket uzantıları, karakter konumu açısından 1 uzunluğa sahip olarak değerlendirilir. Örnek: , 1 döndürür.

#rpos

 * 1) rpos işlevi, dize içindeki belirli bir arama teriminin son konumunu döndürür. Sözdizimi:

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:, 4 döndürür.
 * #len ile olduğu gibi, ve diğer etiket uzantıları, karakter konumu açısından 1 uzunluğa sahip olarak değerlendirilir. Örnek: , 1 döndürür.

#sub

 * 1) sub işlevi, verilen dizeden bir alt dize döndürür. Sözdizimi:

start parametresi, pozitifse (veya sıfırsa), döndürülecek ilk karakterin sıfır tabanlı bir dizinini belirtir.

Örnek:,   döndürür.

,  döndürür.

start parametresi negatif ise, sondan kaç karakter döndürüleceğini belirtir.

Örnek:,   döndürür.

length parametresi, varsa ve pozitifse, döndürülen dizenin maksimum uzunluğunu belirtir.

Örnek:,   döndürür.

length parametresi negatif ise, dizgenin sonundan kaç karakter çıkarılacağını belirtir.

Örnek:,   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:,   döndürür.

Notlar:


 * length parametresi sıfır ise kesinlikle kesme işlemi için kullanılmaz.
 * Örnek:,   döndürür,  ,   döndürür.
 * Eğer start negatif length parametresi ile sondan kesmenin ötesinde bir konumu ifade ediyorsa, boş bir dizge döndürülecektir.
 * Örnek:  boş bir dize döndürür.
 * Bu işlev, UTF-8 çok baytlı karakterlerle güvenlidir. Örnek:,   döndürür.
 * #len olduğu gibi, ve diğer etiket uzantıları, karakter konumu açısından 1 uzunluğa sahip olarak değerlendirilir. Örnek: ,   döndürür.

#pad

 * 1) pad işlevi, belirli bir genişliğe uzatılmış verilen dizeyi döndürür. Sözdizimi:

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:,   döndürür.

Eğer padstring belirtilmemişse, boşluk bırakılır.

direction parametresi, belirtilmişse, şu değerlerden biri olabilir:
 * - dolgu, dizenin sol tarafında olacaktır. Örnek:,   döndürür.
 * - dolgu, dizenin sağ tarafında olacaktır. Örnek:,   döndürür.
 * - dize, döndürülen dizede ortalanacaktır. Örnek:,   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:
 * , zzzzZmrzlina döndürür
 * , zzzzŽmržlina döndürür
 * , žžŽmržlina döndürür (gerekli dolgu karakterlerinin yalnızca yarısı kullanıldığından, belirtilen uzunluktan daha az dolgulu)
 * Dolguda gibi etiketlere ve diğer etiket uzantılarına izin verilmez. Eğer padstring böyle bir etiket içeriyorsa, kesilecektir.

#replace

 * 1) replace işlevi, bir arama teriminin tüm oluşumları yerine bir ikame terimle değiştirilen verilen dizeyi döndürür.

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:,   döndürür.
 * Bu işe yaramazsa, kendi kendine kapanan iki etiketle  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 &lt;nowiki> veya diğer etiket uzantıları boşluklarla değiştirilir.
 * Bu işlev, UTF-8 çok baytlı karakterlerle güvenlidir. Örnek:,   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.

Ş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. 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:
 * Büyük/küçük harfe duyarsız değiştirme

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

 * 1) explode işlevi verilen dizgiyi parçalara böler ve parçalardan birini döndürür. Sözdizimi:

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:
 * ,  döndürür.
 * ,  döndürür.
 * ,  döndürür.
 * ,  döndürür.
 * ,  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:,   döndürür.

#urlencode: ve #urldecode:
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:

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 yerine  kullanın.  çağrısının sonuçları,  sözdizimi ile oluşturulan sayfa içi kaynakça ile uyumluyken,  oluşturulan değerler mutlaka böyle değildir.
 * urlencode, Extension:ParserFunctions/tr içine entegre edilmiştir. ParserFunction uzantısında işlevin yerine  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

 * 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
 * RegexParserFunctions
 * Variables