CodeBlanks Logo Icon CodeBlanks

str_replace() ile değiştirme

PHP kursu · Başlangıç · Ders 88/116

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

  1. 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'.

  2. 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;
  3. 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.

Başlangıç bölümündeki tüm dersler