• 20-07-2018, 13:02:49
    #10
    Djstation adlı üyeden alıntı: mesajı görüntüle
    İki koduda denedim değişiklik olmadı hocam





    Hata şu şekilde oluşuyormuş seo link yapıldığı için linke tıkladığımızda linki çevirdiği gibi title de değişiyor otomatik, bunu çözümü varmıdır?

    php

    include 'func.php';
    if(!empty($_GET['q'])){

    $q = $_GET['q'];
    $title = ''.baslik($q).'';


    Title <?php echo $title; ?>

    Link <a href="/kategori/'.$link.'/'.makale_link($name).'.html" class="xxx">

    Func.php

    function makale_link($str){
    $tr = array('ş','Ş','ı','I','İ','ğ','Ğ','ü','Ü','ö','Ö', 'Ç','ç');
    $eng = array('s','s','i','i','i','g','g','u','u','o','o', 'c','c');
    $str = str_replace($tr,$eng,$str);
    $str=strip_tags($str);
    $str = strtolower(preg_replace("/[^A-Za-z0-9 ]/","",$str));
    $str = str_replace(' ', '-', $str);
    $str = str_replace('---', '-', $str);
    $str = str_replace('--', '-', $str);
    return $str;
    }



    function baslik($str){
    $str=strip_tags($str);
    $str = str_replace('-', ' ', $str);
    $str = ucwords($str);
    return $str;
    }
    Sanırım Türkçe karakter sorununundan kastınız, mesela "Şelale" kelimesini "Selale" olarak çevirmesi?
  • 20-07-2018, 13:06:39
    #11
    Dogrudur hocam o sekilde ceviriyor

    BatuhaNN adlı üyeden alıntı: mesajı görüntüle
    Sanırım Türkçe karakter sorununundan kastınız, mesela "Şelale" kelimesini "Selale" olarak çevirmesi?
  • 20-07-2018, 13:21:35
    #12
    Djstation adlı üyeden alıntı: mesajı görüntüle
    Dogrudur hocam o sekilde ceviriyor
    Başlığı link haline getirmek için makale_link() fonksiyonuna uygulattırdığınız için Türkçe karakterler İngilizce harfe dönüştürülüyor. Fakat İngilizce karakterden Türkçe karaktere çevirmek (kelime anlamı bozulmadan) oldukça zor. Bu yüzden linki makale_link() fonksiyonuna uğratmadan önce başlığın orjinal halini ve fonksiyonun döndürdüğü değeri aynı satırda kayıt ettirip, başlığı çekerken de linki veritabanında sorgulattırıp, orjinal başlığı yazdırtabilirsiniz.
  • 20-07-2018, 13:48:13
    #13
    Teşekkürler hocam veritabanı yok scriptte bu yüzden nasıl yapabileceğimi bilmiyorum

    BatuhaNN adlı üyeden alıntı: mesajı görüntüle
    Başlığı link haline getirmek için makale_link() fonksiyonuna uygulattırdığınız için Türkçe karakterler İngilizce harfe dönüştürülüyor. Fakat İngilizce karakterden Türkçe karaktere çevirmek (kelime anlamı bozulmadan) oldukça zor. Bu yüzden linki makale_link() fonksiyonuna uğratmadan önce başlığın orjinal halini ve fonksiyonun döndürdüğü değeri aynı satırda kayıt ettirip, başlığı çekerken de linki veritabanında sorgulattırıp, orjinal başlığı yazdırtabilirsiniz.
  • 20-07-2018, 14:06:01
    #14
    Djstation adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler hocam veritabanı yok scriptte bu yüzden nasıl yapabileceğimi bilmiyorum
    Eğer genel bir kullanım için değilse, basit olarak txt kullanarakta yapabilirsiniz.

    Düzenleme: Editörden kaynaklı bazı karakterler sorunlu çıkmış.
    https://hastebin.com/uquduparig.php
  • 20-07-2018, 14:09:01
    #15
    Teşekkürler hocam deneyecem

    BatuhaNN adlı üyeden alıntı: mesajı görüntüle
    Eğer genel bir kullanım için değilse, basit olarak txt kullanarakta yapabilirsiniz.

    Link fonksiyonu;
    function makale_link($str){
    $orgStr = $str;
    $tr = array('ş','Ş','ı','I','İ','ğ','Ğ','ü','Ü','ö','Ö', 'Ç','ç');
    $eng = array('s','s','i','i','i','g','g','u','u','o','o', 'c','c');
    $str = str_replace($tr,$eng,$str);
    $str=strip_tags($str);
    $str = strtolower(preg_replace("/[^A-Za-z0-9 ]/","",$str));
    $str = str_replace(' ', '-', $str);
    $str = str_replace('---', '-', $str);
    $str = str_replace('--', '-', $str);
    
    
    file_put_contents("links.txt", $orgStr . "||" . $str . "rn",FILE_APPEND);
    
    return $str;
    }
    Başlık fonksiyonu;
    function baslik($str){
    $file = fopen("links.txt","r");
    while(!feof($file))
    {
    $line = fgets($file);
    if(strpos($line, $str))
    $expContent = explode("||", $line);
    }
    fclose($file);
    
    if(isset($expContent))
    return $expContent[0];
    else
    return "Hata";
    }
  • 20-07-2018, 14:46:45
    #16
    Djstation adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler hocam deneyecem
    Bir mantık hatası yapmışım;

    Yeni hali, https://hastebin.com/ahucitucir.php
  • 20-07-2018, 18:42:48
    #17
    Benimde bir scriptimde aynı sorun var şu şekilde aşıyorum sorunu

    <?=substr(htmlspecialchars($aciklama, ENT_QUOTES, 'UTF-8'),0,180); ?>


    tarantula901 adlı üyeden alıntı: mesajı görüntüle
    Evet bendede tüm db general ci olmasına rağmen başlık kısaltmalarında türkçe karekter son harfe denk gelince soru işareti çıkıyor bunun sebebi ne olabilir.