• 21-01-2013, 13:44:42
    #1
    Üyeliği durduruldu
    Selam arkadaşlar,

    PHP ile Twitter Search API kullanarak tweet çekiyorum ama içinden çıkamadığım bir sorunla karşılaştım. Belki yaşamış olan vardır diyerek konu açmak istedim

    : ) (birleşik) şeklinde tweet gönderdiğmiz zaman:



    1. Twitter'ın kendisinde bozuk, mobilde simgesi çıkıyor.
    2. Search API'de \ud83d\ude0a şeklinde,
    3. PHP ile siteye bastığımızdada twitterdaki gibi bozuk gözüküyor.

    json_decode kullanıyorum ve header charset:utf-8. Bu, Türkçe karakterlerin düzgün gözükmesini sağlıyor (tr karakterlerde 2. resimdeki gibi \ ile başlayarak gözüküyor yoksa). Fakat örnekteki gibi bir değer gelince boş kutu çıkartıyor.

    1. Bu ASCII karakterlerden çok fazla var. Json decode etmeyip, tek tek replace ettirerek çözülecek birşey gibi gözükmüyor malesef.
    2. Regex ile ascii karakterleri preg_replace ettim ama Türkçe karakter gözükmüyor o zamanda.

    Hem Türkçe karakterleri bozmayacak, hem de kutuları 😊 göstermeyecek birşeyler lazım bana. Bu konuda bilgi/fikri olan var mıdır?
    Teşekkürler.
  • 21-01-2013, 14:28:54
    #2
    onlar ascii değil unicode karakterler, json_decode işe yaramadıysa unicode convert fonksiyonu bulmanız lazım.
  • 21-01-2013, 15:42:42
    #3
    json decode daha sonrasında
    preg_replace("/[^a-z0-9\_şıüğçöüİŞĞÖÜÇ]+/i", "", $veri);
    tr karakterlere dokunmaması lazım
  • 22-01-2013, 10:30:27
    #4
    Üyeliği durduruldu
    Deimosx adlı üyeden alıntı: mesajı görüntüle
    onlar ascii değil unicode karakterler, json_decode işe yaramadıysa unicode convert fonksiyonu bulmanız lazım.
    Google'dan örneklere baktım, çözüm sağlayamadım maalesef hocam.

    trgino adlı üyeden alıntı: mesajı görüntüle
    json decode daha sonrasında
    preg_replace("/[^a-z0-9\_şıüğçöüİŞĞÖÜÇ]+/i", "", $veri);
    tr karakterlere dokunmaması lazım
    Cevap için teşekkürler, kutu yerine bu sefer � işaretleri çıkıyor.


    Kullandığım kod bu şekilde, hala çözüm arayışı içerisindeyim.
    <?php
    header("Content-Type: text/html; charset=UTF-8");
    
    $data = 'http://search.twitter.com/search.json?q=hergulc&include_entities=false&rpp=100&page=1'; 
    $feed =file_get_contents($data);
    $valid_data = json_decode($feed);
    $valid_data = $valid_data->results;
    
    foreach ($valid_data as $key=>$value) {
    	echo $value->text . "<br />";
    }
    ?>
  • 22-01-2013, 14:12:05
    #5
    Üyeliği durduruldu
    Arkadaşlar oldu sanıyorum. Special Character regex diye aramalarım sonucunda şimdilik sorunsuz bir şekilde çalıştı.

    /[^ \/@#:.,;:!?*=)\[\](%&+!_-~$€\p{L}\p{N}]/u

    Kalın yazdığım kısmı ekleyerek gözükmesini sağlıyorum. Normalde o karakterleride engelliyor. Bir sorun teşkil edermi ya da yeterlimi sizce?

    Teşekkürler yardımlarınız için tekrar.