strtr

(PHP 4, PHP 5, PHP 7, PHP 8)

strtrBelli karakterleri veya alt dizgeleri değiştirir

Açıklama

strtr(string$dizge, string$eski, string$yeni): string

Alt dizgelerle çalışan sözdizimi:

strtr(string$dizge, array$eski_yeni): string

Üç 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.

Bağımsız Değişkenler

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önen Değerler

Dönüştürülen dizgeyle döner.

Örnekler

Ö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

Ayrıca Bakınız

  • str_replace() - Bir alt dizgenin bütün örneklerini yenisiyle değiştirir
  • preg_replace() - Düzenli ifadeye göre dizgede değişiklik yapar
To Top