(PHP 4, PHP 5, PHP 7, PHP 8)
str_replace — Bir alt dizgenin bütün örneklerini yenisiyle değiştirir
$eski,$yeni,$konu,&$sayı = null
konu dizgesi içindeki eski
dizgelerinin her birini yeni dizgesiyle değiştirerek
elde edilen dizi veya dizgeyi döndürür.
Metni sabit bir dizge yerine bir kalıba göre değiştirmek için preg_replace() işlevi kullanılabilir.
Eğer eski ve yeni birer dizi
ise str_replace() her diziden birer değer alıp bunları
kullanarak konu dizgesinde arama ve yer değiştirme
yapar. Eğer yeni dizisi eski
dizisinden daha az değere sahipse eksik kalan yeni dizgelerin yerine boş
dizgeler konur. Eğer eski bir dizi ve
yeni bir dizge ise her eski dizgesinin yerine bu yeni
dizgesi konur. Zıddı anlamlı değildir.
Eğer eski veya yeni bir dizi
ise elemanları baştan sona doğru ele alınır.
eskiAranacak değer; çok sayıda değer belirtmek için dizi kullanılabilir.
yeniYeni değer; çok sayıda değer belirtmek için dizi kullanılabilir.
konuBir dizge veya dizi belirtilebilir.
Eğer konu bir dizi ise, arama ve değiştirme her
eleman için ayrı ayrı yapılır ve dönen değer de bir dizi olur.
sayıEğer belirtilirse, değiştirilen dizgelerin sayısı bu bağımsız değişkende döndürülür.
Yer değiştirmeler yapılmış dizge veya diziyi döndürür.
Örnek 1 - Basit str_replace() örnekleri
<?php
// Sonuç: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
// Sonuç: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
// Sonuç: You should eat pizza, beer, and ice cream every day
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);
// sağlanan: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>
Örnek 2 - str_replace() olası sorunsal örnekleri
<?php
// Yer değiştirme sırası
$str = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order = array("\r\n", "\n", "\r");
$replace = '<br />';
// \r\n'ler önce değiştirilmeli ki tekrar değiştirilmesin
$newstr = str_replace($order, $replace, $str);
// F çıktılanır, çünkü A ile B, B ile C, ... yer değiştirir.
// Yer değiştirme soldan sağa doğru yapıldığından
// son olarak E ile F yer değiştirir.
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
// Çıktısı: apearpearle pear
// yukarda bahsedilen sebeple
$letters = array('a', 'p');
$fruit = array('apple', 'pear');
$text = 'a p';
$output = str_replace($letters, $fruit, $text);
echo $output;
?>Bilginize: Bu işlev ikil dosyalarla çalışırken dosya içeriğini değiştirmez.
str_replace() yer değiştirmeyi soldan sağa doğru yaptığından, örneklerde de göreceğiniz gibi, çok sayıda yer değiştirme yapıldığında bir önceki değer tekrar değiştirilir.
Bilginize:
Bu işlev harf büyüklüğüne duyarlıdır. Harf büyüklüğüne duyarsız işlem yapmak istiyorsanız str_ireplace() işlevini kullanınız.