PHP str_replace() fonksiyonu bir dizide veya kelimede belirli bir karakteri veya diziyi değiştirmeye yarayan fonksiyondur. Kullanılması oldukça basittir ve aşağıdaki syntax ile çalışmaktadır.
#Parametreler
array|string $eski //Değiştirilecek Değerler
array|string $yeni //Yeni Değerler
array|string $metin //Değiştirilecek Metin
int &$toplam = null //Toplam Değiştirilen Değer
#Fonksiyon Yapısı
str_replace($eski, $yeni, $metin, $toplam) : string|array
Yukarıda da görüldüğü gibi PHP str_replace() fonksiyonu içerisine 4 adet değer almaktadır. Bunlardan ilk parametresi ($eski) değiştirilen değer ve 2. parametre ($yeni) değişen değerdir. $metin adlı değişkene ise değiştirmek istediğiniz kelimeyi yollamanız gerekmektedir. $sayi değişkeni opsiyonel olarak verilebilir ve değerlerin kaç kere değiştiğini kullanıcıya dönmektedir.
PHP str_replace() Fonksiyonu Örnekleri
Sıkça kullanılan str_replace() fonksiyonu için öncelikle birkaç basit örnek vereceğiz.
echo str_replace("SQL", "PHP", "SQL bir yazılım dilidir.");
//Çıktı : PHP bir yazılım dilidir.
Yukarıdaki örnekte olduğu gibi yazımızda bulunan SQL kelimesini PHP ile değiştirmiş olduk. Bu şekilde basit bir replace yapabiliriz. Aynı zamanda bir dizi olarak da dönüşüm gerçekleştirebilirsiniz.
$eski = array("muz", "2", "süt");
$yeni = array("portakal", "3", "su");
$metin = "Marketten 2 kilo muz ve 1 litre süt aldım.";
echo str_replace($eski, $yeni, $metin);
//Çıktı : Marketten 3 kilo portakal ve 1 litre su aldım.
Yukarıdaki örnekte olduğu gibi eski değerlerimizi metin içinde bularak yeni değerler ile değiştirmiş olduk. Örnek olması açısından yukarıdaki örneğimize bir de $toplam degerimizi de verelim.
str_replace($eski, $yeni, $metin,$toplam);
echo $toplam;
//Çıktı : 3
Toplam değerini fonksiyonumuza gönderdiğimizde bizim için kaç kere değişiklik olduğunu vermektedir. Bu örnekte muz, 2 ve süt değerleri değiştiği için 3 değerini dönüş yapmış oldu.
Dikkat! Bu işlev büyük/küçük harfe duyarlıdır. Büyük/küçük harfe duyarlı olmayan değiştirme için str_ireplace() işlevini kullanın.
PHP str_replace() fonksiyonunda dikkat etmeniz gereken bir durum daha var. Dönüşümleri birbiri içinde dönüşen değerleri dikkat ederek dönüşümlerinizi yapınız. Çünkü liste olarak verdiğiniz dönüşümlerde örneğin A’yı B’ye dönüştüreceksiniz ve B’yi de C’ye dönüştüreceksiniz. Bu durumda A kelimemiz C olarak karşımıza çıkacaktır.
$eski = array('Muz', 'Elma', 'Portakal', 'Şeftali', 'Kayısı');
$yeni = array('Elma', 'Portakal', 'Şeftali', 'Kayısı', 'Nar');
$metin = 'Muz';
echo str_replace($eski, $yeni, $metin, $toplam);
//Çıktı : Nar
echo $toplam;
//Çıktı : 5
Yukarıdaki örnekte Muz kelimesini str_replace() fonksiyonu ile Elma kelimesine çevirmeye çalışıyoruz. Ama çıktıda da gördüğünüz gibi Nar çıkmaktadır. Bunun sebebi Muz kelimesi Elma olduktan sonra Elma da Portakala ve Portakal da Şeftaliye… ve en sonunda Nar kelimesine dönüşür. $toplam değişkenimizde de bunu incelediğimizde