str_replace

(PHP 4, PHP 5, PHP 7)

str_replaceBir alt dizgenin bütün örneklerini yenisiyle değiştirir

Açıklama

str_replace ( mixed $eski , mixed $yeni , mixed $konu [, int &$sayı ] ) : mixed

konu dizgesi içindeki eski dizgelerinin her birini yeni dizgesiyle değiştirerek elde edilen dizi veya dizgeyi döndürür.

Kaprisli yer değiştirme kurallarına ihtiyacınız olmayacaksa (düzenli ifadeler gibi) ereg_replace() veya preg_replace() yerine daima bu işlevi kullanın.

Değiştirgeler

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.

eski

Aranacak değer; çok sayıda değer belirtmek için dizi kullanılabilir.

yeni

Yeni değer; çok sayıda değer belirtmek için dizi kullanılabilir.

konu

Bir 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ı

Bilginize: Eğer belirtilirse, yer değiştirilen dizgelerin sayısı bu değiştirgede döndürülür.

Dönen Değerler

Yer değiştirmeler yapılmış dizge veya diziyi döndürür.

Sürüm Bilgisi

Sürüm: Açıklama
5.0.0 sayı değiştirgesi eklendi.
4.3.3 İşlevin davranışı değişti. Eski sürümlerde bir hata vardı; eski ve yeni birer dizi olduğunda eski dizinin dahili göstericisi ilerletilmeksizin boş yeni indisleri atlanırdı. Bu sorun 4.3.3 sürümünde düzeltildi. Bu hatadan etkilenen betiklerde özgün davranışı taklit etmek için bu işlev çağrılmadan önce boş eski değerlerinin kaldırılması gerekir.
4.0.5 Değiştirgelerin çoğu artık birer dizi olabiliyor.

Örnekler

Ö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()str_replace() ile ilgili olası sorunlar

<?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;
?>

Notlar

Bilginize: Bu işlev ikil dosyalarla çalışırken dosya içeriğini değiştirmez.

Dikkat

Çoklu yer değiştirmeler

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.

Ayrıca Bakınız

  • str_ireplace() - Bir alt dizgenin bütün örneklerini yenisiyle değiştirirken harf büyüklüklerini dikkate almaz
  • substr_replace() - Bir dizgenin belli bir bölümünü değiştirir
  • preg_replace() - Düzenli ifadeye göre dizgede değişiklik yapar
  • strtr() - Belli karakterleri dönüştürür