Php Replace Sorunu
-
<?php
$phrase = @$_GET["x"];
$girdi = array('a','b','c','ç','d','e','f','g','ğ','h','ı','i','j','k','l','m','n','o','ö','p','r','s','ş','t','u','ü','v','y','z','w','x','q','A','B','C','Ç','D','E','F','G','Ğ','H','I','İ','J','K','L','M','N','O','Ö','P','R','S','Ş','T','U','Ü','V','Y','Z','W','X','Q','0','1','2','3','4','5','6','7','8','9');
$cikti = array('o','C','q','v','L','j','k','t','1','g','e','h','R','w','3','F','Ö','İ','Ü','J','Ş','8','b','9','K','a','ş','p','n','ç','f','M','4','I','V','B','d','A','2','H','z','W','l','E','i','P','m','s','x','ğ','U','G','ö','c','0','Ç','ü','Ğ','y','S','N','O','T','u','r','Q','5','7','ı','Y','X','Z','6','D');
$newphrase = str_replace($girdi, $cikti, $phrase);
echo $phrase.'<br>';
echo $newphrase;
?>
kod sadece bu ama anlayamadığım bi şekilde w harfini de f harfini de ç ye çevirio kafayı yiycem ne alaka ya :D
-
dizide problem vardır
-
ne gibi hocam ? dizilerin ikisi de 74 karakter.
-
bi harf dönüştükten sonra o dönüşen harf de karşılığındakine dönüşüyor. w ve f ç de çakışıyor
-
Cosmic bunu yazdı
bi harf dönüştükten sonra o dönüşen harf de karşılığındakine dönüşüyor. w ve f ç de çakışıyor
hocam niye öyle oluyo hiç bişi anlamadım ben sorun ne ki ?
-
Hocam program beklendiği gibi çalışıyor. f den ç ye gitmesi normal. Tek seferde gitmiyor çünkü. Bak bakalım k neye dönüştürülüyor?
-
DrKill bunu yazdı
Hocam program beklendiği gibi çalışıyor. f den ç ye gitmesi normal. Tek seferde gitmiyor çünkü. Bak bakalım k neye dönüştürülüyor?
k da ç oldu. hepsi farklı oluo zaten ben anlamadım bu replace nası çalışıo ? her dizinin bulunduğu sıranın değişmesi gerekmio mu
-
nurulmac11 bunu yazdıDrKill bunu yazdı
Hocam program beklendiği gibi çalışıyor. f den ç ye gitmesi normal. Tek seferde gitmiyor çünkü. Bak bakalım k neye dönüştürülüyor?
k da ç oldu. hepsi farklı oluo zaten ben anlamadım bu replace nası çalışıo ? her dizinin bulunduğu sıranın değişmesi gerekmio mu
Hocam değiştirilen şey girdi dizisinde ye alıyorsa tekrar değiştirilir. Dikkat edersen ç harfi girdi dizinde yer almıyor. Mesela s yaz muhtemelen 6 ya dönüştürecek. Anlatamadım sanırım.
-
nurulmac11 bunu yazdıDrKill bunu yazdı
Hocam program beklendiği gibi çalışıyor. f den ç ye gitmesi normal. Tek seferde gitmiyor çünkü. Bak bakalım k neye dönüştürülüyor?
k da ç oldu. hepsi farklı oluo zaten ben anlamadım bu replace nası çalışıo ? her dizinin bulunduğu sıranın değişmesi gerekmio mu
Hocam değiştirilen şey girdi dizisinde ye alıyorsa tekrar değiştirilir. Dikkat edersen ç harfi girdi dizinde yer almıyor. Mesela s yaz muhtemelen 6 ya dönüştürecek.
Çıktı girdi olarak geri geliyor yani. Çıktı girdi olarak gelmeyinceye kadar değişiklik devam ediyor. Umarım anlatabilmişimdir.
DrKill tarafından 19/Ağu/14 22:21 tarihinde düzenlenmiştir -
http://php.net/manual/tr/function.str-replace.php
Şu açıklama senin problemini açıklıyor galiba..
// F çıktılanır, çünkü A ile B, B ile C, ... yer değiştirir.
// Yer değiştirme soldan sağa doğru yapıldığından
// son olarak E ile F yer değiştirir.
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject); -
SerYolcu bunu yazdı
http://php.net/manual/tr/function.str-replace.php
Şu açıklama senin problemini açıklıyor galiba..
// F çıktılanır, çünkü A ile B, B ile C, ... yer değiştirir.
// Yer değiştirme soldan sağa doğru yapıldığından
// son olarak E ile F yer değiştirir.
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);aydınlanma yaşadım doğru lan :D ama problemi nası çözücem bi fikir gelmedi aklıma, yani nasıl istediğim gibi yapabilirim ben bunu ?
nette aradım galiba ağır regex gerekio prgreplace la yapmak lazımmış ?
nurulmac11 tarafından 19/Ağu/14 22:22 tarihinde düzenlenmiştir