Aynı Uzunlukta Olmayan Dizilerde Yer Değiştirme

Eğer değiştirme dizisi ve olay dizisi uzunluğu aynı değilse, son eleman atanır.

PHP
43 lines
<?php
class metin{
function metin_degistir($ara,$degistir,$olay,$metin){
$finalmetin="";
$list=explode($ara,$metin);
if(is_string($degistir))
$degistir=explode(",",$degistir);
if(is_string($olay))
$olay=explode(",",$olay);
if(is_array($olay)||is_metin($olay)){
$i=0;
$degistir_yeni="";
while($i<count($olay)){
if(isset($degistir[$i]))
$degistir_yeni=$degistir[$i];
@$list[$olay[$i]].=$degistir_yeni;
$i++;
}
$i=0;
while($i<count($list)-1){
if($i==@$olay[$i])
$finalmetin.=$list[$i];
else
$finalmetin.=$list[$i];
$i++;
}
}else{
$list[$olay].=$degistir;
$i=0;
while($i<count($list)-1){
if($i==$olay)
$finalmetin.=$list[$i];
else
$finalmetin.=$list[$i];
$i++;
}
}
return $finalmetin;
}
}
$metindegistir=new metin;
echo $metindegistir->metin_degistir("sen",["ali","ayşe"],[0,1,2],"neredesin sen neredesin sen neredesin sen neredesin sen");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
1 lines
neredesin ali neredesin ayşe neredesin ayşe neredesin
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Preg_replace Kullanımı ile Sözcük veya Kelime Yer Değiştirme

PHP
9 lines
<?php
$metin="Ben sana mecburum bilemezsin <br>
Adını mıh gibi aklımda tutuyorum <br>
Büyüdükçe büyüyor gözlerin <br>
Ben sana mecburum bilemezsin <br>
İçimi seninle ısıtıyorum. ";
$metin=preg_replace("/yor\w+/i","yorsun",$metin);//yor... geçen gelimeler
$metin=preg_replace("/bil\w+/i","sevdiğim",$metin);//bil.... geçen kelimeler
echo $metin;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

\w+ : Boşluk hariç numara ve harfler [a-zA-Z0-9_] içeren düzenli ifade kuralı

Çıktısı

Markdown
5 lines
Ben sana mecburum sevdiğim
Adını mıh gibi aklımda tutuyorsun
Büyüdükçe büyüyor gözlerin
Ben sana mecburum sevdiğim
İçimi seninle ısıtıyorsun.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Şiir : Atilla İlhan