array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.strtr.php', 1 => 'strtr', ), 'up' => array ( 0 => 'ref.strings.php', 1 => 'Dizge İşlevleri', ), 'prev' => array ( 0 => 'function.strtoupper.php', 1 => 'strtoupper', ), 'next' => array ( 0 => 'function.substr-compare.php', 1 => 'substr_compare', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/strings/functions/strtr.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
strtr — Belli karakterleri veya alt dizgeleri değiştirir
Alt dizgelerle çalışan sözdizimi:
Üç bağımsız değişken verilirse, bu işlev, dizge
içinde
rastladığı eski
dizgesindeki her bir (tek baytlık)
karakteri, yeni
dizgesindeki karşılık gelen karakterle
değiştirerek elde edilen dizgeyi döndürür. Yani, eski
ve yeni
dizgelerinde $n
belli bir
konumu gösterdiğinde dizge
içinde rastlanılan her
$eski[$n]
yerine $yeni[$n]
konarak elde
edilen dizge döndürülür.
Eğer eski
ve yeni
dizgeleri
farklı uzunluktaysa dizgelerden uzun olanının fazla baytları yok sayılır.
Dönüş değerinin uzunluğu ile dizge
uzunluğu aynı
olacaktır.
İki bağımsız değişken verilirse, ikincisi
array('eski' => 'yeni', ...)
biçeminde bir dizi
olmalıdır. Dönüş değeri, dizi anahtarlarının karşılık gelen değerlerle
değiştirildiği bir dizgedir. İlk olarak en uzun anahtarlar denenir.
Bir kere değiştirilen metin bir daha değerlendirilmez.
Bu durumda, boş anahtar olmaması koşuluyla anahtarlar ve değerler herhangi bir uzunlukta olabilir; ek olarak, dönüş değerinin uzunluğu dizgeden farklı olabilir. Bununla birlikte, işlev için en verimli durum tüm anahtarların aynı boyutta olduğu durumdur.
dizge
Karakterleri dönüştürülecek dizge.
eski
Yerine yenisi konacak baytlar.
yeni
Eskisinin yerine konacak baytlar.
eski_yeni
array('eski' => 'yeni', ...)
biçeminde alt dizge
çiftlerinden oluşan bir dizi.
eski_yeni
dizisi anahtarı boş dizge
(""
) olan bir çift içeriyorsa, bu çift yoksayılır.
PHP 8.0.0 ve sonrasında böyle bir durumda bir
E_WARNING
çıktılanır.
Dönüştürülen dizgeyle döner.
Örnek 1 - strtr() örneği
<?php
// Burada, strtr() bayt bayt dönüşüm yapar
// Dolayısıyla burada tek baytlı kodlama (ISO-8859-*) kullanıldığı varsayılıyor
$addr = strtr($addr, "äåö", "aao");
?>
Aşağıdaki örnekte strtr() işlevi iki bağımsız değişken ile
çağrılmaktadır. Değiştirme tercihlerine dikkat: "h"
daha uzun bir eşleşmenin parçası olduğundan ve bir kere değişen metin
tekrar değerlendirilmediğinden işlem görmemiştir.
Örnek 2 - İki bağımsız değişkenli strtr() örneği
<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>
Yukarıdaki örneğin çıktısı:
hello all, I said hi
Aşağıdaki iki davranış biçimi büyük ölçüde farklıdır. Üç bağımsız değişkenli strtr() baytları değiştirirken, ikili olanı alt dizgeleri değiştiriyor.
Örnek 3 - strtr() davranış karşılaştırması
<?php
echo strtr("baab", "ab", "01"),"\n";
$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>
Yukarıdaki örneğin çıktısı:
1001 ba01