(PHP 4, PHP 5, PHP 7, PHP 8)
strtok — Dizgeyi bir dizgeciğe göre böler
İsimli bağımsız değişkenleri desteklemeyen diğer sözdizimi:
strtok() işlevi dizge dizgesini
ayraçlar dizgesindeki karakterleri ayraç olarak
kullanarak daha küçük dizgelere böler. Yani, "Bu örnek bir dizgedir"
dizgesini boşluk karakterini ayraç olarak kullanarak sözcüklerine
bölebilirsiniz.
Sadece ilk strtok() çağrısında
dizge bağımsız değişkeni belirtilir. Sonraki çağrılarda
sadece ayraçlar bağımsız değişkenini kullanmak yeterlidir.
Baştan başlamak veya yeni dizgelerden birini ayrıştırmak için işlevi
dizge bağımsız değişkeni ile çağırmak işlemi ilklendirmek
için yeterlidir. ayraçlar bağımsız değişkenine birden
fazla ayraç koyabilirsiniz. Belirtilen bu ayraçlardan birine ilk
rastlandığıyla işlev dizgeyi böler.
Bilginize:
Bu işlev, explode() işlevine göre biraz farklı davranır. İlk olarak, ayrıştırılmış dizedeki iki veya daha fazla bitişik
ayraçlarkarakteri tek bir sınırlayıcı olarak kabul edilir. Ayrıca, dizenin başında veya sonunda bulunanayraçlaryoksayılır. Örneğin,";aaa;;bbb;"dizesinde,";"ile strtok() işlevine yapılan art arda çağrılarda, önce "aaa" ve "bbb" dizeleri ve ardındanfalsedeğeri döner. Sonuç olarak,explode(";", $string)5 elemanlı bir dizi döndürürken burada sadece iki eleman döner.
dizgeDaha küçük parçalara bölünecek dizge.
ayraçlarDizgeyi bölmek için kullanılacak ayraçlardan oluşan dizge.
Bir dizge parçası veya dizgede ayraç kalmazsa false döner.
Örnek 1 - strtok() örneği
<?php
$string = "This is\tan example\nstring";
/* Sekme ve satırsonu karakterlerine göre dizgeyi bölelim */
$tok = strtok($string, " \n\t");
while ($tok !== false) {
echo "Word=$tok<br />";
$tok = strtok(" \n\t");
}
?>
Örnek 2 - Ayraçlar tükendiğinde strtok() davranışı
<?php
$dizge1 = strtok('/something', '/');
$dizge2 = strtok('/');
var_dump($dizge1, $dizge2);
?>Yukarıdaki örneğin çıktısı:
string(9) "something"
bool(false)
Örnek 3 - strtok() ile explode() arasındaki fark
<?php
$string = ";aaa;;bbb;";
$parts = [];
$tok = strtok($string, ";");
while ($tok !== false) {
$parts[] = $tok;
$tok = strtok(";");
}
echo json_encode($parts),"\n";
$parts = explode(";", $string);
echo json_encode($parts),"\n";Yukarıdaki örneğin çıktısı:
["aaa","bbb"] ["","aaa","","bbb",""]
Bu işlev mantıksal false
değeriyle dönebileceği gibi false olarak değerlendirilebilecek mantıksal
olmayan bir değerle de dönebilir. Bu konuda daha fazla bilgi
Mantıksal Değerler bölümünde
bulunabilir. Bu işlevden dönen değeri sınamak için
===
işleci kullanılabilir.