str_replace() ile değiştirme
str_replace() ile bir dizedeki alt dizeyi değiştirmeyi öğrenirsin.
str_replace() ile değiştirme
PHP'de bir dizedeki alt dizeyi değiştirmek için str_replace() kullanılır. Üç parametre alır: str_replace($search, $replace, $subject). $search ile aranan metin, $replace ile yeni metin, $subject ise içinde arama yapılan dizedir. Eşleşen tüm örnekleri değiştirir ve yeni dize döndürür.
Örneğin str_replace('kalem', 'kitap', 'kalem al') çağrısı 'kitap al' döndürür. Özgün dize değişmez; sonucu bir değişkene ataman gerekir.
Birden fazla değişiklik
Birden fazla alt dizeyi tek seferde değiştirmek için $search ve $replace parametrelerine dizi (array) verebilirsin. PHP, dizileri sırayla eşleştirir: ilk aranan ilk yenisiyle, ikinci aranan ikinci yenisiyle değiştirilir.
Örnek: str_replace(['sarı', 'mavi'], ['kırmızı', 'yeşil'], 'sarı ve mavi') çağrısı 'kırmızı ve yeşil' döndürür. Bu yöntem, tek tek çağırmaktan daha temizdir.
Harf duyarlılığı
str_replace() harf duyarlıdır (case-sensitive). Yani 'PHP' ile 'php' aynı sayılmaz. Büyük-küçük harf farkını umursamadan değiştirmek istersen str_ireplace() kullanabilirsin; i harfi insensitive anlamına gelir.
Örnek: str_replace('php', 'X', 'PHP 8.3') çağrısı eşleşme bulamaz ve dizeyi olduğu gibi döndürür. Bu davranış, kullanıcıdan gelen serbest metni değiştirirken dikkat etmen gereken bir ayrıntıdır.
Uygulama İki kelimeyi birden değiştir
$text değişkenine "Siyah araba hızlı gider" dizesini ata. $result değişkenine str_replace() ile iki değişiklik yap: "Siyah" → "Kırmızı" ve "hızlı" → "yavaş". Arama ve değiştirme değerlerini dizi olarak ver. Sonra echo $result; ile yazdır.
Örnek çözümü göster
Önce $text'i ata, sonra $result = str_replace([...], [...], $text); yaz, sonra echo $result; ekle.
Örnek çözüm:
<?php
$text = "Siyah araba hızlı gider";
$result = str_replace(["Siyah", "hızlı"], ["Kırmızı", "yavaş"], $text);
echo $result;
Kendini test et
-
str_replace('a', 'e', 'merhaba') çıktısı nedir?
str_replace('a', 'e', 'merhaba')- merhebe
- merhaba
- merheba
- Hata verir
Cevabı göster
merhebe — Doğru. Tüm 'a' harfleri 'e' olur: 'merhaba' → 'merhebe'.
-
Yanlış yazımı düzelt
$word = 'Klem'; $fixed = ____('Klem', 'Kalem', $word); echo $fixed;Cevabı göster
$word = 'Klem'; $fixed = str_replace('Klem', 'Kalem', $word); echo $fixed; -
str_replace('php', 'X', 'PHP 8.3 ile') çıktısı nedir?
str_replace('php', 'X', 'PHP 8.3 ile')- X 8.3 ile
- PHP 8.3 ile
- XHP 8.3 ile
- Hata verir
Cevabı göster
PHP 8.3 ile — Doğru. str_replace harf duyarlıdır; 'PHP' ile 'php' eşleşmez.