• 16-12-2009, 03:43:37
    #1
    Üyeliği durduruldu
    Arkadaşlar selamlar.
    cURL ile bağlanıpta get_meta_tag ile aldığım meta bilgilerine ait kodlamalar her sitede doğal olarak farklılık göstermekte.

    bunların hepsini UTF-8 olarak almak istiyorum;

    1- Header bilgilerini UTF-8 olarak gönderiyorum

    header('Content-Type: text/HTML; charset=UTF-8');
    2- fonksiyonu tanımlıyorum;

    function getSiteMeta($domain){
    	$tags = get_meta_tags($domain);
    	
    	if (sizeof($tags) == 0){
    		echo 'Anahtar Kelime Yok !';
    	}
    	
    	foreach ($tags as $key=>$value) {
    		echo "$key: $value <br>";
    	}
    
    }
    
    
    $domainbase = (isset($_GET['site'])) ? $_GET['site'] : '';
    3- işlemi başlatıyorum

            getSiteMeta("http://".$domainbase);
    amac doğrultusunda _GET ile alınan degeri sorgulatıyorum

    domain.com/?site=www.digerdomain.com

    diye kullandığım zaman meta etiketleri gelmekte.
    ama her site farklı farklı karakter kodlamasına sahip olduğu için hepsini UTF-8 göster dediğimde karakterler kayboluyor.

    mb_convert_encoding denedim hatta son parametreyi auto verdim yinede işlemiyor.

    yardımcı olursanız sevinirim
    saygılarımla.
  • 16-12-2009, 08:38:48
    #2
    Üyeliği durduruldu
    mb_convert_encoding için video anlatımım vardı.
    sitenin meta bilgilerinden dilini algilayip ona göre dönüştürme yapabilirsiniz
    http://www.programlamatv.com/ders/ph...ng-fonksiyonu/
  • 16-12-2009, 08:42:23
    #3
    Bunu bir inceleyin
    http://www.kodaman.org/yazi/rss-ve-t...akter-problemi
  • 16-12-2009, 21:52:03
    #4
    Üyeliği durduruldu
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    mb_convert_encoding için video anlatımım vardı.
    sitenin meta bilgilerinden dilini algilayip ona göre dönüştürme yapabilirsiniz
    http://www.programlamatv.com/ders/ph...ng-fonksiyonu/
    hocam ilk onu izledim zaten ama bi sıkıntı var çözemedim.

    <?php
    
    function getSiteMeta($domain){
    	$tags = get_meta_tags($domain);
    	
    	if (sizeof($tags) == 0){
    		echo 'Anahtar Kelime Yok !';
    	}
    	
    	foreach ($tags as $key=>$value) {
    		$value = mb_convert_encoding($value, "ISO-8859-9", "UTF-8");
    		echo "$key: $value <br>";
    	}
    
    }
    
    $domainbase = (isset($_GET['site'])) ? $_GET['site'] : '';
    
    ?>
    
    
    <?php
            getSiteMeta("http://".$domainbase);
    ?>
    şuan ki hazır phpnin içeriği budur.
    http://www.umutgurler.com/umut/meta/...www.isicam.net < çalışıyor
    http://www.umutgurler.com/umut/meta/....com/forum.php < çalışmıyor.

    bunun sebebi birinci adresteki site ISO-8859-9
    ikinci sitenin ki UTF-8

    bu aşamada sorgulanan sitenin karakter kodlamasını algılaması gerekiyor scriptin bunu yapamadım.

    iconv çalıştıramıyorum sanırım hostingde libiconv yüklü değil. info.php oluşturup baktım sadece iconv.ini ek olarak ayarlanmış o kadar.

    iconv kullandığım scriptte bu:
    acaba ben mi hatalı kullanıyorum.

    <?php
    
    function getSiteMeta($domain){
    	$tags = get_meta_tags($domain);
    	
    	if (sizeof($tags) == 0){
    		echo 'Anahtar Kelime Yok !';
    	}
    	
    	foreach ($tags as $key=>$value) {
    		$value = iconv('UTF-8', 'ASCII//TRANSLIT', $iconv);
    		echo "$key: $value <br>";
    	}
    
    }
    
    $domainbase = (isset($_GET['site'])) ? $_GET['site'] : '';
    
    ?>
    
    
    <?php
            getSiteMeta("http://".$domainbase);
    ?>
  • 17-12-2009, 01:29:10
    #5
    Üyeliği durduruldu
    sorunu çözdüm.. php manual saolsun

    mb_convert_encoding("değişken","yeni kodlama biçimi","eski kodlama biçimi");
    şeklinde kullanılıyor biliyordum. evet öyle ama alternatif olarak şunları da belirtebiliyoruz.

    mb_convert_encoding("değişken","yeni kodlama biçimi","eski kodlama biçimi 1, eski kodlama biçimi 2, eski kodlama biçimi 3");
    yani bi sorun kalmadı.
  • 17-12-2009, 13:24:11
    #6
    $değişken=iconv("Windows-1254", "UTF-8", $değişken);