(PHP 4, PHP 5)
ereg_replace — Düzenli ifadeye göre dizgede değişiklik yapar
$şablon
, string $yenisi
, string $dizge
)
Bu işlev dizge
dizgesi içinde
şablon
düzenli ifadesini arar ve eşleşen metnin
yerine yenisi
'ni yerleştirir.
Evrenkod uyumsuzluğu nedeniyle bu işlevin kullanımı PHP 5.3.0'dan beri ÖNERİLMEMEKTEDİR.
şablon
Bir POSIX gelişkin düzenli ifadesi.
yenisi
Eğer şablon
parantezli gruplar içeriyorsa
yenisi
değiştirgesi
\\rakam biçeminde bir
dizge içerebilir. Burada rakam, parantezli grubun şablonun solundan
itibaren kaçıncı grup olduğunu gösterir. \\0 değeri
dizgenin tamamınına karşılıktır. Böyle 9 alt dizge belirtilebilir.
Parantezler iç içe olabilir, bu durumda aç parantezler sayılır.
dizge
Girdi dizgesi.
Değiştirilen dizgeyi döndürür. Dizge ile eşleşme sağlanamamışsa dizgenin kendisini değiştirmeden döndürür.
Örneğin, aşağıdaki kod parçası üç kere "This was a test" basacaktır.
Örnek 1 - ereg_replace() örneği - 1
<?php
$string = "This is a test";
echo str_replace(" is", " was", $string);
echo ereg_replace("( )is", "\\1was", $string);
echo ereg_replace("(( )is)", "\\2was", $string);
?>
Burada dikkat edilmesi gereken, yenisi
değiştirgesinde bir tamsayı belirtirseniz beklenmedik sonuçlar alabilecek
olmanızdır. Bunun sebebi, ereg_replace() işlevinin
sayıyı sıradan bir karakter değeri olarak yorumlaması ve buna göre
davranmasıdır. Örnek:
Örnek 2 - ereg_replace() örneği - 2
<?php
/* Bu beklendiği gibi çalışmaz. */
$num = 4;
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string; /* Çıktısı: 'This string has words.' */
/* Bu çalışır. */
$num = '4';
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string; /* Çıktısı: 'This string has 4 words.' */
?>
Örnek 3 - URL'den bağlantı oluşturma
<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);
?>
Bilginize:
PHP 5.3.0 ve sonrasında regex eklentisinin kullanımı artık önerilmemekte olup yerine PCRE eklentisinin kullanılması önerilmekte ve bu işleve yapılan çağrılar bu nedenle bir
E_DEPRECATED
uyarısı çıktılamaktadır.PCRE'ye dönüşümü kolaylaştırmak için fark listesine bakınız.
Perl uyumlu düzenli ifade sözdizimini kullanan preg_replace() işlevi çoğu durumda ereg_replace() işlevinden daha hızlıdır.