folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Ajax Kodunu Php'ye Çevirebilecek Var Mı?



Ajax Kodunu Php'ye Çevirebilecek Var Mı?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    if (!$result) { ... } yerine

    // curl_errno($ch) hatanın kodunu verir
    // curl_error($ch) hatanın dizgesini verir.
    if( curl_errno($ch) > 0 ) {
      die('curl error: '.curl_error($ch));
    }
    
    // curl_getinfo($ch) ile birçok bilgiyi içeren
    //   bir dizi elde ediyoruz
    $tmp = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if( $tmp != 200 ) {
      die('curl http code error:'.$tmp);
    }
    
    if( strlen($result) == 0 ) {
      die('sonuc sifir oldugu icin devam edilemiyor.');
    }

    kodunu yaz. Açıklamaları koda yazdım ama ekrar yapalım açıklama.

    İlk bölümde curl bir şekilde hata verirse ki genelde bağlantıda oluşan problemler için hataları geri çevirir. İnternet bağlantısı koptu, bağlantı çok yavaştı, dns çalışmadı gibi.. Tabiki ingilizce çıktılar verecektir.

    İkinci bölümde curl_getinfo( ... ) ile çeşitli bilgileri aldık http kodu 200'den farklıysa hata veriyor.

    Veri boşta gelebilir. Eğer boş gelirse sen json_decode() yaptığında title, pageid gibi verileri içermediğinden hata verir. Bunun önüne biraz olsun geçtik. Devamı json_decode()'da çağıracağın verilerin varlığını kontrol etmektir. O da senin ellerinden öpsün.


    Sadece bi imza..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lepusmorris
    lepusmorris's avatar
    Kayıt Tarihi: 31/Mart/2007
    Erkek
    PcK0 bunu yazdı

    if (!$result) { ... } yerine

    // curl_errno($ch) hatanın kodunu verir
    // curl_error($ch) hatanın dizgesini verir.
    if( curl_errno($ch) > 0 ) {
      die('curl error: '.curl_error($ch));
    }
    
    // curl_getinfo($ch) ile birçok bilgiyi içeren
    //   bir dizi elde ediyoruz
    $tmp = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if( $tmp != 200 ) {
      die('curl http code error:'.$tmp);
    }
    
    if( strlen($result) == 0 ) {
      die('sonuc sifir oldugu icin devam edilemiyor.');
    }

    kodunu yaz. Açıklamaları koda yazdım ama ekrar yapalım açıklama.

    İlk bölümde curl bir şekilde hata verirse ki genelde bağlantıda oluşan problemler için hataları geri çevirir. İnternet bağlantısı koptu, bağlantı çok yavaştı, dns çalışmadı gibi.. Tabiki ingilizce çıktılar verecektir.

    İkinci bölümde curl_getinfo( ... ) ile çeşitli bilgileri aldık http kodu 200'den farklıysa hata veriyor.

    Veri boşta gelebilir. Eğer boş gelirse sen json_decode() yaptığında title, pageid gibi verileri içermediğinden hata verir. Bunun önüne biraz olsun geçtik. Devamı json_decode()'da çağıracağın verilerin varlığını kontrol etmektir. O da senin ellerinden öpsün.

    hocam yine hata verdi. örneğin $url = 'https://tr.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=Hande%20Yener'; yerine Handeewkjrldl yazıyorum aşağıdaki hatayı veriyor. wikipedia dan sonuç bulamayınca hata veriyor. aslında farklı bir dizi veriyordur ondan dolayı böyle yapıyor olabilir.

    Warning: get_object_vars() expects parameter 1 to be object, null given in /home/asd/public_html/asd.php on line 32

    $text = get_object_vars($veri->parse->text);  // 32. satır


    ..
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    Yazdık oraya eşşek kadar dimi? Devamı json_decode()'da çağıracağın verilerin varlığını kontrol etmektir. O da senin ellerinden öpsün. E biraz sen kas dedik.

    Ben kastırıcam burayı sana. Şimdi Handeakjladwjadwjklwadkj sayfasını çağırdığında haliyle o sayfa bulunamadı sayfasını getiriyor. O sayfada senin istediğin veriler olmadığından hata veriyor. Verilerin tanımlı olup olmadığını kontrol edeceksin. De php de yeni misin?


    Sadece bi imza..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lepusmorris
    lepusmorris's avatar
    Kayıt Tarihi: 31/Mart/2007
    Erkek
    PcK0 bunu yazdı

    Yazdık oraya eşşek kadar dimi? Devamı json_decode()'da çağıracağın verilerin varlığını kontrol etmektir. O da senin ellerinden öpsün. E biraz sen kas dedik.

    Ben kastırıcam burayı sana. Şimdi Handeakjladwjadwjklwadkj sayfasını çağırdığında haliyle o sayfa bulunamadı sayfasını getiriyor. O sayfada senin istediğin veriler olmadığından hata veriyor. Verilerin tanımlı olup olmadığını kontrol edeceksin. De php de yeni misin?

    normalde asp biliyorum hocam. aspdeki mantığı php uyarlayıp aratıyorum googleda. çıkan sonuçlardan deneye yanıla çalıştırıyorum. üç aşağı beş yukarı aynı, sadece biraz zaman alıyor. örneğin aşağıdaki 4 satır replace kodu 2 saatimi aldı. şimdi ben replace ettirdiğim için title vs gelmiyor. onun yerine count ile diziyi saydırayım dedim ama if else de işleme alınmayan kısımda bile olsa hata verdirdi.

    bu arada bendeki son hali aşağıdaki gibi belki işine yarayan biri çıkar.

     

    <?php

    $url = 'https://tr.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=Hande%20Yener';

     

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_USERAGENT, 'TahriBot/1.0 (http://www.tahribat.com/)');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $result = curl_exec($ch);

    if (!$result) {
      exit('cURL Error: '.curl_error($ch));
    }

    $veri = json_decode($result);
    $text = get_object_vars($veri->parse->text);

    $sonuc = $text['*'];
    $sonuc = preg_replace('@<(table|ol|sup)[^>]*>.*?</\1>@is', '', $sonuc);
    $sonuc = preg_replace('/<!--(.*)-->/Uis', '', $sonuc);
    $sonuc = preg_replace("/<.*?>/", "", $sonuc);
    $sonuc = str_replace("\n", "", $sonuc); //yeni satır karakteri
    $sonuc = str_replace("\r", "", $sonuc); //satırbaşı karakteri


    echo $sonuc;

    ?>


    ..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    Seni biraz üşengeçsin diye algıladığımdan biraz yüklenmek istedim.

    O zaman sana biraz genel PHP görüşlerimi söyleyeyim. PHP'nin kendi kodlarında biraz düzensizlik var. str_replace(search, replace, string) şeklinde iken substr(string, baslangic) gibi.. Bende ara ara karıştırıyorum acaba hangisi ilk kullanılıyordu diye düşünüyor ya da hata yapıyorum.

    Ve pek çok şeyin birden fazla değil en az 10dan fazla çözümü var :) Sanırım popüler bir dil olmasının sebebi bu :)

    Ve kodu tekrar düzenledim. preg ve str replace yapman yerine strip_tags() ile html ve php kodlarını temizleyebilirdin. Seninde bileceğin üzere PHP ASP'den çok daha yeni bir dil ve daha fazla temel olaylara desteği var. Olsun preg_replace'te önemli bir kod. Yazdıklarını incelemedim ama ekran sonucun doğru gibi gözüküyor. En azından onları deneyimleyebildin.

    <?php
    
    $url = 'https://tr.wikipedia.org/w/api.php'.
           '?action=parse&format=json'.
           '&prop=text§ion=0&page=Hande%20Yener';
    
    $useragent = 'TahriBot/1.0 (http://www.tahribat.com/)';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $result = curl_exec($ch);
    
    if( curl_errno($ch) > 0 ) {
      die('curl error: '.curl_error($ch));
    }
    
    $tmp = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if( $tmp != 200 ) {
      die('curl http code error: '.$tmp);
    }
    
    if( strlen($result) == 0 ) {
      die('curl result length turned zero');
    }
    
    $result = json_decode($result, true);
    if( !isset($result['parse']['text']['*']) ) {
      die('curl result $result->parse->text->* not found');
    }
    
    $tmp = $result['parse']['text']['*'];
    $tmp = strip_tags($tmp);
    echo($tmp);

     

    PcK0 tarafından 04/Eyl/15 03:14 tarihinde düzenlenmiştir

    Sadece bi imza..
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lepusmorris
    lepusmorris's avatar
    Kayıt Tarihi: 31/Mart/2007
    Erkek

    teşekkür ederim hocam. benim replace kodlarıyla değiştirdim, şuan tam istediğim gibi oldu. strip_tags ile denemiştim ama tam istediğim gibi olmadı. sanırım onunla sadece html kodlarını temizleyebiliyoruz. verinin üst kısmında gereksiz bir bölüm vardı <table></table> arasında. hem bu tagları hem de içerisini sildirmek için en pratik bunlar geldi. vt bağlantılarını vs çözdüm ama php çok ivirli civirli. artık sora sora, araştıra araştıra öğrenicem :)


    ..
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PHP-SEO Developer
    Erdem
    Erdem's avatar
    Kayıt Tarihi: 04/Haziran/2002
    Erkek

    regex de aradığın içeriği aramadan önce

    stristr fonksiyonu ile o aranacak olan bilginin orda olup olmadığını kontrol et yoksa bir sonraki işlem varsa regex çalışsın.

    bunuda if else ile yapacaksın.


    Php for SEO nun ardından Php for Gcode (CNC)
Toplam Hit: 1567 Toplam Mesaj: 18
php ajax