• 22-03-2014, 12:38:19
    #1
    Merhabalar, elimde şöyle bir kod var. Başlıklar Türkçe desteklemiyor.

    Örneğin "aşk" başlık bir post "a-k" veya "ak" şeklinde görünüyor. Türkçe karakterler için replace yapılmamış.

    Kod bloğu şu şekilde. Bunu nasıl Türkçe destekli hale getirebilirim?

    function slugify($str) {
    	// replace non letter or digits by -
    	if($str !== mb_convert_encoding( mb_convert_encoding($str, 'UTF-32', 'UTF-8'), 'UTF-8', 'UTF-32') )
    	$str = mb_convert_encoding($str, 'UTF-8', mb_detect_encoding($str));
    	$str = htmlentities($str, ENT_NOQUOTES, 'UTF-8');
    	$str = preg_replace('`&([a-z]{1,2})(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i', '\1', $str);
    	$str = html_entity_decode($str, ENT_NOQUOTES, 'UTF-8');
    	$str = preg_replace(array('`[^a-z0-9]`i','`[-]+`'), '-', $str);
    	$str = strtolower( trim($str, '-') );
    
    	if (empty($str))
    	{
    		return substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 5);
    	}
    	   
    	return $str;
    }
    Teşekkürler.
  • 22-03-2014, 12:43:41
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    kardesım burda sadece tarıh ıle alakalı verı var

    edit: tamam bakıyorum şimdi düzeldi

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 12:43:41 -->-> Daha önceki mesaj 12:39:56 --

    $str= trim($str);
    $search = array('Ç','ç','Ğ','ğ','ı','İ','Ö','ö','Ş','ş','Ü','ü',' ');
    $replace = array('c','c','g','g','i','i','o','o','s','s','u','u','-');
    $str = str_replace($search,$replace,$str);
    bunu if sorgusundan onceye eklermisin bi
  • 22-03-2014, 12:46:17
    #3
    interkolik adlı üyeden alıntı: mesajı görüntüle
    kardesım burda sadece tarıh ıle alakalı verı var

    edit: tamam bakıyorum şimdi düzeldi

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 12:43:41 -->-> Daha önceki mesaj 12:39:56 --

    $str= trim($str);
    $search = array('Ç','ç','Ğ','ğ','ı','İ','Ö','ö','Ş','ş','Ü','ü',' ');
    $replace = array('c','c','g','g','i','i','o','o','s','s','u','u','-');
    $str = str_replace($search,$replace,$str);
    bunu if sorgusundan onceye eklermisin bi
    Teşekkürler hocam sonuç şöyle:

    türkçe karakter deneme şĞiü

    başlığı için şunu verdi:

    turkce-karakter-deneme-iu
  • 22-03-2014, 12:47:49
    #4
    tablon ile alakalı olabilir sanırım o utf 8 karakterler ile çözülebilir sanırım
  • 22-03-2014, 14:03:06
    #5
    interkolik adlı üyeden alıntı: mesajı görüntüle
    tablon ile alakalı olabilir sanırım o utf 8 karakterler ile çözülebilir sanırım
    İlginiz için teşekkürler hocam, bunun için ne yapabilirim?
  • 22-03-2014, 21:48:11
    #6
    // replace non letter or digits by -
    buranın yerine

    $bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-');
    		$yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ');
    		$perma = strtolower(str_replace($bul, $yap, $str));
    bunu koyup denermisin ?
  • 23-03-2014, 15:27:11
    #7
    HACKHERS adlı üyeden alıntı: mesajı görüntüle
    // replace non letter or digits by -
    buranın yerine

    $bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-');
    		$yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ');
    		$perma = strtolower(str_replace($bul, $yap, $str));
    bunu koyup denermisin ?
    İlginiz için teşekkürler hocam şu şekilde başlık:

    türkçe karakter deneme şŞiİğĞüÜçÇöÖ

    sonuç:

    turkce-karakter-deneme-i-uuccoo
  • 23-03-2014, 15:29:30
    #8
    https://www.r10.net/1068779224-post14.html
    bunu inceleyebilirsin.
    birçok karakteri destekliyor. sürekli kullandığım bir fonksiyon.
  • 23-03-2014, 22:55:54
    #9
    S_HA_DO_W adlı üyeden alıntı: mesajı görüntüle
    https://www.r10.net/1068779224-post14.html
    bunu inceleyebilirsin.
    birçok karakteri destekliyor. sürekli kullandığım bir fonksiyon.
    Teşekkür ederim, boş bir zamanınızda rica etsem ilk mesajdaki kod ile beraber nasıl kullanacağımı anlatmanız mümkün müdür? Yeniden teşekkürler.