• 17-08-2009, 18:47:46
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    file get contents ile siteden veri alıp veritabanına yazdırıyorum fakat mysql'a kaydederken türkçe karekter sorunum var.
    direk yazdırdığımda çıkan örnek:
    Ülkemizde hala yasaklı bulunan YouTube, Türkiye\'de en çok ziyaret edilen beşinci site...
    phpmyadminde çıkan görüntü:
    ?lkemizde hala yasakl? bulunan YouTube, T?rkiye'de en ?ok ziyaret edilen be?inci site...
    kodlara başlamadan önce headerı gönderdim. veri çektiğim sitede ISO-8859-9 karekterinde.
    <?php
    include ("../../vt.php");
    include ('fonksiyonlar.php');
    header('Content-type:text/html; charset=ISO-8859-9');
    $url=mysql_escape_string($_GET['url']);
    $baslik=$_GET['baslik'];
    $resim=mysql_escape_string($_GET['resim']);
    $kat=mysql_escape_string($_GET['kat']);
    if (empty($kat)) {
    $kat='1';
    }
    @set_time_limit(0);
    for($i=0;$i<1;$i++) {
    $cikti=file_get_contents("$url");
    $yazi=preg_match("'<div class=\"linkz01\">
    <P><STRONG>(.*?)</STRONG>'si", $cikti, $bir );
    $aciklama = $bir[0];
    $aciklama=str_replace("'","\'",$aciklama);
    $aciklama=strip_tags($aciklama);
    $aciklama=trim($aciklama);
    $cikti3=preg_match('/<\/STRONG>(.*?)<\/div>
    <\/span>
    /si', $cikti, $cek );
    $lirik = $cek[1];
    $lirik=str_replace("'","\'",$lirik);
    $lirik=strip_tags($lirik);
    if (empty($lirik) || empty($baslik) || empty($aciklama)) {
    echo 'gerekli alanlardan bazıları boş';
    } 
    else 
    {
    $link= cevir("$baslik");
    include('class.autokeyword.php');
    $params['content'] = $lirik; //page content
    //set the length of keywords you like
    $params['min_word_length'] = 5;  //minimum length of single words
    $params['min_word_occur'] = 2;  //minimum occur of single words
    $params['min_2words_length'] = 3;  //minimum length of words for 2 word phrases
    $params['min_2words_phrase_length'] = 10; //minimum length of 2 word phrases
    $params['min_2words_phrase_occur'] = 2; //minimum occur of 2 words phrase
    $params['min_3words_length'] = 3;  //minimum length of words for 3 word phrases
    $params['min_3words_phrase_length'] = 10; //minimum length of 3 word phrases
    $params['min_3words_phrase_occur'] = 2; //minimum occur of 3 words phrase
    $keyword = new autokeyword($params, "utf-8");
    $tarih = tarih(2);
    $sql="INSERT INTO haber (kategori,resim,link,ekleyen,meta,baslik,aciklama,haber,tarih) values ('$kat','$resim','$link','admin','".$keyword->get_keywords()."','$baslik','$aciklama','$lirik','$tarih')";
    $oldumu=mysql_query($sql);
    if ($oldumu) {
    echo "oldu sonunda.";
    } 
    else
    {
    echo "yazi eklenemedi.";
    }
    }
    echo $baslik;
    echo "<br />";
    echo $resim;
    echo "<br />";
    echo $aciklama;
    echo "<br /><br />";
    echo $lirik;
    echo "<br />";
    echo "<br />";
    }
    ?>
    yardımcı olursanız sevinirim ilk sitemin ilk botu olacak
  • 18-08-2009, 08:10:54
    #2
    dosyayı yazdığınız editör dosyayı utf-8 olarak mı kayediyor acaba?
  • 18-08-2009, 17:11:44
    #3
    evet utf-8 olarak kaydediyor.
  • 18-08-2009, 18:38:44
    #4
    iconv(”ISO-8859-9″, “UTF-8″, $veriadi );
  • 18-08-2009, 19:05:22
    #5
    teşekkür ederim iconv işimi gördü.
  • 18-08-2009, 20:56:16
    #6
    genelde tırnak vb karakter hatalarida bu sorunlara yol açar.
    gelen verileri mysql_escape_string ile dönüştürürsen daha etkili olur.
  • 18-08-2009, 22:05:53
    #7
    Üyeliği durduruldu
    phpexpert adlı üyeden alıntı: mesajı görüntüle
    genelde tırnak vb karakter hatalarida bu sorunlara yol açar.
    gelen verileri mysql_escape_string ile dönüştürürsen daha etkili olur.
    ptvde sorunun kökten çözümüne dair yazdigim döküman vardi;

    http://programlamatv.com/ders/php/ph...lash-problemi/