folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Str_Replace Sunucuda Çalışmıyor



Str_Replace Sunucuda Çalışmıyor

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nurulmac11
    nurulmac11's avatar
    Kayıt Tarihi: 04/Ağustos/2012
    Erkek

    selamlar

    elimde iki gündür uğraştığım bir işvar

    lakin şöyle garip bi sorunum var : str_replace ile türkçe karakterleri temizlemeye çalışıyorum

    lokalde çalışan kod sunucuda çalışmıyo

    sunucu debian

    bi ton aradım internette bişey bulamadım, ne önerirsiniz ?


    black implies white, self implies other, life implies death.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek

    Türkçe karakterleri char değeri ile yazıp replace etseniz hocam?

    Edit: yada Türkçe karakterleri echo ile yazdırdığınızda ne cikti veriyor?

    biri tarafından 03/Eyl/16 23:07 tarihinde düzenlenmiştir

    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek

    preg_replace ile yapabilirsin. Şöyle bir örnek buldum nette : 

    function sefyap ( $fonktmp ) {
        $returnstr = "";
        $turkcefrom = array("/Ğ/","/Ü/","/Ş/","/İ/","/Ö/","/Ç/","/ğ/","/ü/","/ş/","/ı/","/ö/","/ç/");
        $turkceto   = array("G","U","S","I","O","C","g","u","s","i","o","c");
        $fonktmp = preg_replace("/[^0-9a-zA-ZÄzÜŞİÖÇğüşıöç]/"," ",$fonktmp);
        // Türkçe harfleri ingilizceye çevir
        $fonktmp = preg_replace($turkcefrom,$turkceto,$fonktmp);
        // Birden fazla olan boşlukları tek boşluk yap
        $fonktmp = preg_replace("/ +/"," ",$fonktmp);
        // Boşukları - işaretine çevir
        $fonktmp = preg_replace("/ /","-",$fonktmp);
        // Tüm beyaz karekterleri sil
        $fonktmp = preg_replace("/\s/","",$fonktmp);
        // Karekterleri küçült
        $fonktmp = strtolower($fonktmp);
        // Başta ve sonda - işareti kaldıysa yoket
        $fonktmp = preg_replace("/^-/","",$fonktmp);
        $fonktmp = preg_replace("/-$/","",$fonktmp);
        $returnstr = $tmpdate . $fonktmp;
        return $returnstr;
    }//sef url için fonksiyon  

    Biraz takla atacaksın ama str_replace' ın sunucuda çalışmamasına anlam veremiyorum.

    PHP versiyonun nedir ?

     

    Edit : Banane deprecated olduysa, sanki umrumda diyorsan; kodun başına error_reporting(0); ekle, yukarıdaki koddan faydalan direk.

     

    ozgunlu tarafından 04/Eyl/16 01:52 tarihinde düzenlenmiştir

    Hello, i am nothing. I come from Neverland.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    @ozgunlu preg_replace değil, onunla e (eval) değiştiricisi kullanmak deprecated oldu. Bir işlev artık önerilmiyorsa yerine yeni öneri yapılır. Artık preg_replace'i e değiştiricisi ile kullanmak yerine preg_replace_callback kullanılması öneriliyor.


    anlıyorum.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    buzukatak bunu yazdı

    @ozgunlu preg_replace değil, onunla e (eval) değiştiricisi kullanmak deprecated oldu. Bir işlev artık önerilmiyorsa yerine yeni öneri yapılır. Artık preg_replace'i e değiştiricisi ile kullanmak yerine preg_replace_callback kullanılması öneriliyor.

    Teşekkür ederim hocam düzelttiğin için, ben preg_replace' ın deprecated olduğunu sanmıştım.

    O zaman yukarıdaki kod arkadaşın işini görecektir.


    Hello, i am nothing. I come from Neverland.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nurulmac11
    nurulmac11's avatar
    Kayıt Tarihi: 04/Ağustos/2012
    Erkek
    ozgunlu bunu yazdı

    preg_replace ile yapabilirsin. Şöyle bir örnek buldum nette : 

    function sefyap ( $fonktmp ) {
        $returnstr = "";
        $turkcefrom = array("/Ğ/","/Ü/","/Ş/","/İ/","/Ö/","/Ç/","/ğ/","/ü/","/ş/","/ı/","/ö/","/ç/");
        $turkceto   = array("G","U","S","I","O","C","g","u","s","i","o","c");
        $fonktmp = preg_replace("/[^0-9a-zA-ZÄzÜŞİÖÇğüşıöç]/"," ",$fonktmp);
        // Türkçe harfleri ingilizceye çevir
        $fonktmp = preg_replace($turkcefrom,$turkceto,$fonktmp);
        // Birden fazla olan boşlukları tek boşluk yap
        $fonktmp = preg_replace("/ +/"," ",$fonktmp);
        // Boşukları - işaretine çevir
        $fonktmp = preg_replace("/ /","-",$fonktmp);
        // Tüm beyaz karekterleri sil
        $fonktmp = preg_replace("/\s/","",$fonktmp);
        // Karekterleri küçült
        $fonktmp = strtolower($fonktmp);
        // Başta ve sonda - işareti kaldıysa yoket
        $fonktmp = preg_replace("/^-/","",$fonktmp);
        $fonktmp = preg_replace("/-$/","",$fonktmp);
        $returnstr = $tmpdate . $fonktmp;
        return $returnstr;
    }//sef url için fonksiyon  

    Biraz takla atacaksın ama str_replace' ın sunucuda çalışmamasına anlam veremiyorum.

    PHP versiyonun nedir ?

     

    Edit : Banane deprecated olduysa, sanki umrumda diyorsan; kodun başına error_reporting(0); ekle, yukarıdaki koddan faydalan direk.

     

    abi sagol ya, cok isime yaradi


    black implies white, self implies other, life implies death.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    Sorun çözülmüş ama yinede şunu bilmende fayda olabilir ilerde; sunucu karakter seti türkçe yi barındıran utf-8 değilse böyle sorunlar yaşayabilirsin. Php de config den ayarlanabiliyorsa charseti utf-8 yap.


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
Toplam Hit: 570 Toplam Mesaj: 7
türkçe karakter