Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

kücük harfi büyük harfe cevirme

Konu, 'PHP' kısmında sokrates tarafından paylaşıldı.

  1. sokrates

    sokrates Daimi Üye

    Kayıt:
    8 Temmuz 2002
    Mesajlar:
    537
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programmer
    Şehir:
    istanbul
    merhabalar

    şöyle örnekle açıklamaya çalışayım
    $degisken="zihni";

    echo $degisken dedigim zaman z büyük harfe cevrilicek
    çıktı==Zihni
     
  2. mkarabulut

    mkarabulut Misafir

    Bu işi doğrudan yapan bir PHP fonksiyonu var mı bilmiyorum ama şu kod işini görür
    PHP:
      echo strtoupper(substr($str,0,1)) . substr($str,1);
    Kolay gelsin...
     
  3. CrazyCat

    CrazyCat Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    653
    Beğenilen Mesajlar:
    0
    Meslek:
    lecturer
    Şehir:
    Adana
    PHP:
    //   ilk harfini büyütmek için 

    $string="merhaba nasıl gidiyor? ";
    $result substr_replace ($stringsubstr(strtoupper($string), 01), 01);
    echo 
    $result;
    umarım yukardaki örnek işine yarar..
    değişken tek kelimeden oluşmuyorsa yanlızca ilk kelimenin ilk harfini büyütüyor.
    cümledeki her kelimenin ilk harfini büyütmek için ise cümleyi kelimelere göre parçalayıp her birsi için yukardaki gibi bir kod yazman lazım.

    kolay gelsin :)
     
  4. turker

    turker Agresif Üye

    Kayıt:
    19 Temmuz 2002
    Mesajlar:
    5,988
    Beğenilen Mesajlar:
    0
    PHP:
    echo "ucfirst($degisgen)"
    Ancak bu komut bir cümledeki kelimelerin ilk harflerini büyük yapar. yani "selam ali" değişkeninin bu komutla "Selam Ali" durumuna gelir.
     
  5. CrazyCat

    CrazyCat Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    653
    Beğenilen Mesajlar:
    0
    Meslek:
    lecturer
    Şehir:
    Adana
    PHP:

    echo ucfirst($string); //ilk kelimenin ilk harfini büyütüyor
    echo ucwords($string); // her kelimenin ilk harfini büyütüyor

    Arasıra fonksiyonları kurcalamanın yararı oluyormuş demek :)

    Bir dili sürekli kullanan için işler daha kolay yürüyor. Ama sürekli değişik dillerde çalışmak zorunda kalınca daha temel işlevler ile programlama ön plana çıkıyor hazır fonksiyonlar ise oldukça faydalı olmasına rağmen gözden kaçıyor.

    Sürekli aynı dille çalışıp kendini geliştirenleri kıskanıyorum :rolleyes:

    iyi çalışmalar:)
     
  6. Düzgün

    Düzgün Üye

    Kayıt:
    29 Temmuz 2002
    Mesajlar:
    206
    Beğenilen Mesajlar:
    0
    Perl için ise şu şekilde olacak.

    $str="Hızlı kahverengi tilki tembel köpeğin üstüne atlar.";

    lc( $str ); # hepsi küçük harf
    uc( $str ); # hepsi büyük harf
    $str =~ s/(\w+)/\u\L$1/g; #sadece kelimelerin başharfleri büyük.

    sanırım php de preg_match lada stringler formatlanır..

    selamlar..
     
  7. Düzgün

    Düzgün Üye

    Kayıt:
    29 Temmuz 2002
    Mesajlar:
    206
    Beğenilen Mesajlar:
    0
    peki bunun ASP si nasıl olacak?
     
  8. CrazyCat

    CrazyCat Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    653
    Beğenilen Mesajlar:
    0
    Meslek:
    lecturer
    Şehir:
    Adana
    PHP:

    Dim msg
    hepsiilkharf

    msg 
    "Merhaba"

    hepsi UCase(msg)
    ilkharf UCase(Left(msg1))

    Eğer ASP de VbScript kullanılıyorsa yukardaki gibi olur. Her kelimenin ilk harfini büyütmek için hazır fonksiyon var mı bilmiyorum ama inStr kullanılarak kelimeleri ayırıp ilk harflerini büyütecek bir fonksiyon yazılabilir.

    kolay gelsin :)
     
  9. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Tamamı büyük harflerden oluşan bir yazıyı buradaki bütün fonksiyonları denememe ramen sadece baş harfi büyük diğerleri küçük olacak şekilde çeviremedim.

    :uff:
     
  10. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    PHP:
    <?php

    $metin
    ="YENİ BİR BİLGİSAYAR VİRÜSÜ İÇİN ALARM VERİLDİ... MICROSOFT'UN POPÜLER SUNUM PROGRAMI 

    POWER POİNT İLE GÖNDERİLEN YENİ BİR VİRÜSÜN, BİLGİSAYARIN KONTROLÜNÜ VİRÜSÜ GÖNDEREN KİŞİYE 

    VERDİĞİ BİLDİRİLDİ. ''LIFE IS BEATIFUL.PPS'' İSİMLİ POWER POİNT PREZENTASYONU İÇİNE YERLEŞTİRİLEN VE 

    BİLİŞİM DÜNYASINDA TROJAN OLARAK ADLANDIRILAN VİRÜS, SUNUMUN AÇILMASININ ARDINDAN ÖNCE ''LIFE IS 

    NO LONGER BEATIFUL ANYMORE'' OLAN BİR YAZI GÖSTERİYOR VE HEMEN ARKASINDAN VİRÜSÜ GÖNDEREN 

    KİŞİYE BAŞTA ELEKTRONİK POSTA ŞİFRELERİ OLMAK ÜZERE, TÜM ŞİFRELERİ GÖNDERİYOR, BİLGİSAYARIN 

    KONTROLÜNÜ TAMAMEN GÖNDERİCİYE BIRAKIYOR."
    ;

    echo 
    ucfirst($metin);

    ?>
    kod bu sonuç burada .
     
  11. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    okey her şey güzel ama ufak bir sorun var...

    ucfirst, ucwords, strtoupper, strtolower gibi fonksiyonlar tr karakterlerde ne yazıkki sorun yaratıyorlar önce kendiniz bir fonksiyon yazmalısınız...

    Strtr(cevirilmedenonce, cerildiktensonra, string); idi sanırım lookat php manual :D yani
    $x = 'olm bu gün var ya bi şeker gördüm sorma... Kocaman dı :D'
    strtr('şiğç', 'ŞİĞÇ', $x);
    hatam varsa sorry :D
     
  12. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    Peki bir metnin ilk harfini buyuk yazdırmak ama harf turkce ıse bunu ıngılızceye cevırmek ıstıyorsak.. Hatta metnın ıcındekı butun turkce karakterlerı ıngılızceye cevırmek ıstıyorsak neyaparız ?.. Ornek:

    Metin : şu çamışa bak.. ğörk iğyk !!!
    Cevrim: Su Camisa Bak.. Gork Igyk !!!

    Bunu ıstememım sebebı mysql de kategorı adlarına gore a dan z ye kayıt cektıgımde turkce karakter ıceren kayıtların lıstenın en sonuna atılması.. Yanı ya butun harflerı ıngılızce basmalıyım yada mysql den turkce kayıt cekmelıyım.. Yardımcı olabılırmısınız?
     
  13. mkarabulut

    mkarabulut Misafir

    Hunter,
    Sanırım bu sorunun olması gerektiği gibi bi çözümü yok. Ve mysql Türkçe desteği eklemedikçe olacak gibi de gözükmüyor.

    Eğer kategori isimlerinin alfabetik sıralanması çok önemli ise bunu veritabanı ile halledemeyeceğin için php ile halletmeye çalış,zaten başka yapacak bi şey de görünmüyor...

    Şöyle bi şeyler yapabilirsin. mysql'den verileri alıp ekrana yazdırıyorsan döngü içinde, bunun yerine önce bi diziye atıp orada kendi kriterlerine göre sıralayıp başka bi döngü içinde ekrana yazdırmayı deneyebilirsin.

    Kolay gelsin
     
  14. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    HunTER zaten strtolower(); veya benzeri komutlar dedim ya Türkçe karakterleri istediğin şekle sokuyor.
    strtr();

    $metin = 'şu çamışa bak.. ğörk iğyk !!!';
    $metin = strtr($metin, "şçğö", "scgo"); // metin çeviren fonksiyon
    echo $metin;
    gibi tek tırnak yapmıyorum çünkü hiç denemedim :D

    Ama diyorum ya değerleri başka strtolower gibi şeyler le de çevirebilirsin...
     
  15. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Gibimi olmalı?
    PHP:
    <?php
    strtr
    ('şığçüö''ŞİĞÇÜÖ'$x); 
    $metin="YENİ BİR BİLGİSAYAR VİRÜSÜ İÇİN ALARM VERİLDİ... MICROSOFT'UN POPÜLER SUNUM PROGRAMI 

    POWER POİNT İLE GÖNDERİLEN YENİ BİR VİRÜSÜN, BİLGİSAYARIN KONTROLÜNÜ VİRÜSÜ GÖNDEREN KİŞİYE 

    VERDİĞİ BİLDİRİLDİ. ''LIFE IS BEATIFUL.PPS'' İSİMLİ POWER POİNT PREZENTASYONU İÇİNE YERLEŞTİRİLEN VE 

    BİLİŞİM DÜNYASINDA TROJAN OLARAK ADLANDIRILAN VİRÜS, SUNUMUN AÇILMASININ ARDINDAN ÖNCE ''LIFE IS 

    NO LONGER BEATIFUL ANYMORE'' OLAN BİR YAZI GÖSTERİYOR VE HEMEN ARKASINDAN VİRÜSÜ GÖNDEREN 

    KİŞİYE BAŞTA ELEKTRONİK POSTA ŞİFRELERİ OLMAK ÜZERE, TÜM ŞİFRELERİ GÖNDERİYOR, BİLGİSAYARIN 

    KONTROLÜNÜ TAMAMEN GÖNDERİCİYE BIRAKIYOR."
    ;

    echo 
    ucfirst($metin);

    ?>
     
  16. mkarabulut

    mkarabulut Misafir

    Bence ucfirst fonksiyonunun türkçe versiyonu şöyle bi şeyler olabilir... Üstadlar bi bakın
    PHP:
    $letters=array('ı','ü','ç','ö','ğ');
    $lettersC=array('I','Ü','Ç','Ö','Ğ');

    for(
    $i=0;$i<count($letters);$i++){
        
    $metin=eregi_replace("([[:space:]]{1,})([$letters[$i]])","\\1$lettersC[$i]",$metin);
    }

    Tam emin değilim regexp çalışırmı denemedim ama böyle bi şeyler olacak sanırım
     
  17. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    :confused: walla trya biliyorsan dene belirteyim herşey deneye deneye. :D eejeje
     
  18. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Mustafa şunları birazcık açarsan kafam karıştı :p
     
  19. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Bende karışacak kafa bile kalmadı :p
     
  20. mkarabulut

    mkarabulut Misafir

    ya açıklayacam da şu forum bıraksa da regexp i düzgün yazabilsem,yazdırmadı ya bi türlü,biraz daha deneyeyim...

    bekleyin geliom:)