preg_replace() ile değiştirme
preg_replace() ile eşleşen deseni yeni değerle değiştirmeyi öğrenirsin.
preg_replace ile değiştirme
preg_replace($pattern, $replacement, $subject) eşleşen her parçayı yeni bir dizeyle değiştirir. Üç parametre alır: desen, yerine konacak metin ve kaynak metin.
Örneğin preg_replace("/\d/", "X", "Tel: 0555") her rakamı X yapar ve "Tel: XXXX" döndürür. Eşleşme yoksa metin değişmeden döner.
Dönüş değeri yeni metindir; orijinal değişken değişmez. Sonucu bir değişkene atamak veya doğrudan yazdırmak gerekir.
Düzenleyiciler: i ve u
Desenin sonuna, ayraçtan sonra ek harflerle modifier (düzenleyici) eklenir. En yaygın iki tanesi şunlardır:
i: büyük-küçük harf duyarsız eşleşme. /elma/i deseni hem elma hem ELMA ile eşleşir.
u: UTF-8 modu. Türkçe karakterli metinlerde \w ve \s gibi kısayolların doğru çalışması için gerekir. /ç[oğ]ul/u gibi.
Modifier'lar birleşebilir: /elma/iu her iki özelliği de açar.
Uygulama Rakamları X ile değiştir
$phone = "Tel: 0555 123 45 67"; dizesindeki tüm rakamları preg_replace ile X'e çevir. Deseni $pattern, yeni değeri $replacement, sonucu $result değişkenine al ve $result'u yeni satırla yazdır.
Örnek çözümü göster
Deseni "/\d/" yap. Yeni değer "X". $result = preg_replace($pattern, $replacement, $phone); ile ata. echo $result . "\n"; yaz.
Örnek çözüm:
<?php
// preg_replace ile rakamları X ile değiştir
$phone = "Tel: 0555 123 45 67";
// deseni, yeni değeri ve çağrıyı ekle
$pattern = "/\d/";
$replacement = "X";
$result = preg_replace($pattern, $replacement, $phone);
// sonucu yazdır
echo $result . "\n";
Kendini test et
-
Deseni değişkene ata
$pattern = ____; $result = preg_replace($pattern, "X", "Tel: 0555"); echo $result . "\n";Cevabı göster
$pattern = "/\d/"; $result = preg_replace($pattern, "X", "Tel: 0555"); echo $result . "\n"; -
Hangi modifier büyük-küçük harf duyarsız eşleşme sağlar?
- u
- m
- i
- s
Cevabı göster
i — Doğru. i (case-insensitive) harf duyarsız eşleştirir.
-
Modifier'ları anlama
- i
- Büyük-küçük harf duyarsız
- u
- UTF-8 modu
- m
- Çok satırlı mod
- s
- Nokta yeni satırla eşleşir