Metin dönüştürme komutları Php nin verdiği nimetler arasında. "strtoupper" komutu küçük harfi büyük harfe çevirirken bakın neler oluyor.
Küçük harfleri büyük harflere çevirmeye ne kadar ihtiyaç duyuyorsunuz bilmiyorum ama, arama işlemleri yaparken bazen başınızı ağrıtabiliyor. "strtoupper" ismindeki bu minik komut, tüm küçük harfleri büyük harfe çevirirken sağolsun "ı" ve "i" harflerinde sorun çıkarıyor. Gerçi komutunda bir suçu yok, sonuçta ingiliz alfabesinde "i" harfinin büyük hali "I" harfidir :). Peki ne yapmalıyız. Sanırım bu konu ile alakadar aşağıdaki örneğimi incelemeniz yararlı olacaktır.
function cevir(& $deger)
{
if (strstr($deger,"i") or strstr($deger,"ı"))
{
for ($x=0;$x<=strlen($deger);$x=$x+1)
{
$deger1=substr($deger,$x,1);
$deger2=strtoupper($deger1);
if ($deger1=="i"){$deger2="İ";};
if ($deger1=="ı"){$deger2="I";};
$deger3=$deger3.$deger2;
};
$deger= $deger3;
}
else
{
$deger=strtoupper($deger);
};
};
?>
Size burada include ederek kullanabileceğiniz bir Function oluşturdum. İnclude ile kullanma alışkanlığınız yoksa dosya başınada yazabilirsiniz. Peki bu Functionu nasıl kullanacaksınız?
cevir($arananisim);
Evet, oluşturduğumuz Function, Çevir isimli bir komut gibide düşünülebilir. Burada, "$arananisim" değişkeni sorunsuz olarak büyük harflere çevirilmiş olacaktır.
Peki bu komutun çalışma yapısı nedir? Kısaca Function' umda neler yaptığımı anlatayım.
Temel olarak yapacağım yöntem, bir çok değişkenin çeviri altına girmesi veya uzun bir metin içeren değişkenin dönüştürülmesi hususunda, kaale alınmayacak kadar bir yavaşlık oluşturacaktır. Ben yinede suyunu çıkarıp içinde "ı" veya "i" harfi yoksa, boşuna bu işlemi yapma, strtoupper komutunu kullan, belki php daha hızlı halleder o zaman dedim. Bunu oluşturduğum ilk satırlardaki "if" komutu ile gerçekleştirdim. En sondaki else komutuda, içermiyor ise strtoupper komutu çalışsın manasına geliyor zaten. Function komutunda kullandığım "&" parametresi belki bilmeyenlerin dikkatini çekmiştir. Function içerisine giren değişkenin, Function dışınada aktarılmasını sağlamaktadır.
Daha sonra bulunan değişkenin boyutunu algılatıp (Kaç harf) o boyutta bir döngü oluşturdum. Daha sonra karakterleri tek tek alıp, "ı" ise "I" yap, "i" ise "İ" dedim. Eğer "ı" veya "i" değilse, bu harfi strtoupper komutu ile büyüt dedim. Böylece strtoupper komutu, büyütmesini bilmediği yerlerde çalışmayıp, tamamı ile bu kısımlarda düzgün olarak büyütülmesini izleyecektir.
Bu Makaleyi Bizimle Pylaştığı İçin Arkadaşımıza Teşekkür Ediyoruz.
Makaleyi Gönderen :Savaş GÖRMEK
savas@bilimveteknoloji.com
Copyright © PHP Nuke - Themes - Modules - Blocks - Addons - Turkish Nuke Tüm hakları saklıdır.