• 19-09-2012, 18:45:47
    #1
    siteadi.com/
    siteadi.com/page/2
    siteadi.com/page/3
    siteadi.com/page/4
    siteadi.com/page/5
    siteadi.com/page/6 ...

    bu sayfaların tümünde 10 tane yazı listelenmiş (<h2> tagı ile). ben bu 10 yazının başlıklarını ekrana yazdırmak istiyorum tek seferde.

    yani forma

    siteadi.com

    yazdığım takdirde 10 ilk 10 sayfanın başlıklarını ekrana yazdırsın istiyorum. bunu nasıl mümkün kılarım?
  • 20-09-2012, 00:53:50
    #2
    Birkaç sefer okudum ama tam olarak anlayamadım, biraz daha açıklama yapmanız mümkün mü?
    -Veriler nereden geliyor?
    -Gelen verilerin formatı nedir?
    -siteadresi.com yazınca nasıl bir veri çıkıyor, siteadresi.com/page/2 yazınca nasıl bir veri çıkıyor?
    -Ekrana yazdırmak istediğiniz veri hangi sayfa için nasıl bir şey?

    Bunlara dair bir şey anlayamadım maalesef.
  • 20-09-2012, 01:25:18
    #3
    Hakikatten bende anlayamadım.
  • 20-09-2012, 01:26:51
    #4
    Sitemiz: http://www.webrazzi.com/

    İlk etapta anasayfadaki başlıkları alıyoruz.

    Başlıklar:
    1) iOS 6 yayınlandı
    2) 2012 sonunda yaklaşık her 60 kişiden biri tablet sahibi olacak
    3) Google Maps işyerlerinin kapısından içeri giriyor
    4) Dijital İşler’de bu hafta Harry’s Bar, Topshop ve Volkswagen’in kampanyalarını inceledik
    5) Facebook yeni mobil reklam ağını test etmeye başladı
    6) Urban Station Türkiye’yi ‘ofis-kafe’ kavramıyla tanıştırıyor
    7) iOS 6 için hazırlıklarınızı tamamladınız mı?
    8) Jenerik alan adı uzantıları markalar için neden önemli?
    9) Twitter; Apple, Facebook, Google ve kendisini nasıl görüyor?
    10) Tart Yeni Medya Mutfağı’ndan oyunlaştırma platformu: İşte Oyun

    Şimdi

            $kayit = $_POST['do'];
            
            $kaynak = file_get_contents("$kayit");
    
            preg_match_all('@<h2><a href="(.*?)" rel="bookmark" title="(.*?)">(.*?)</a></h2>@si',$kaynak,$veri);
    bir form oluşturdum POST metodu ile URL adresini yazıyorum ve bana bu sitenin başlıklarını getiriyor.

    Ben her sayfanın başlığını getirmek için (her sayfada 10 tane başlık var) form'a her defasında bir bağlantı yazmak zorundayım. Örnek olarak

    http://www.webrazzi.com (bu ilk sayfaydı, yani, anasayfa)

    ikinci sayfa
    http://www.webrazzi.com/page/2/

    üçüncü sayfa
    http://www.webrazzi.com/page/3/

    vs diye gidiyor.

    Benim istediğim şey şu. Ben her defasında form kısmına

    http://www.webrazzi.com/page/2/
    http://www.webrazzi.com/page/3/
    http://www.webrazzi.com/page/4/
    http://www.webrazzi.com/page/5/

    yazmak yerine tek seferde

    http://www.webrazzi.com

    yazayım ve bana tüm başlıkları listelesin.
  • 20-09-2012, 01:41:11
    #5
    Sanırım bot yazıyorsunuz. O zaman for döngüsü içerisine alacaksınız kodu. Yani:
    <?php
    $sabiturl="http://www.webrazzi.com";
    
    function kontrol($sayfa, $url)
    {
    	$adres=$url.'/page/'.$i.'/';
    	$a = file_get_contents($adres);
    	//buraya kontrol kodları gelecek.
    }
    
    for($i=1;kontrol($i);$i++)
    {
    	$adres=$sabiturl.'/page/'.$i.'/';
    	//diğer kodlar buraya gelecek.
    }
    ?>
    //buraya kontrol kodları gelecek. şeklinde yazdığım kısıma kontrol ifadeleri yazılacak. Yani Eğer sayfa içeriğinde "Bulunamadı" yazıyorsa return False, başka türlü ise return True diyerek kontolümüzü oluşturacağız.
    //diğer kodlar buraya gelecek. şeklinde yazılan yere ise çalışmasını istediğiniz kodları yazacaksınız.
  • 20-09-2012, 01:42:38
    #6
    Anlaşıldı bot yapmak istiyorsun. preg_match_all ile 2-3-4 sayılarının tutulduğu html tagının bulu sadece rakamı oradan eleyeceksin bir diziye aktaracaksın.

    Bir döngü oluşturup, bu dizi kadar döndüreceksin. döngü içerisinde, file_content ile veriyi çekeceksin.


    preg_macth_all(<a href="".$siteurl."(.*?)">(.*?)</a>,$siteurl,sayfalar);

    for ($i=0; $i<sayfalar.count; i++)
    {
    get_file_content($siteurl.$sayfalar[0][i]);
    }

    şeklinde olabilir.
    Not: denemedim sadece mantık olarak anlatmaya .çalıştım syntax hatası olabilir.
  • 21-09-2012, 17:43:15
    #7
    Misafir adlı üyeden alıntı:
    Teşekkür ederim
    Rica ederiz
  • 21-09-2012, 18:07:00
    #8
    ZorbAA adlı üyeden alıntı: mesajı görüntüle
    Rica ederiz
    İşime yaramadı valla yapamadım ama teşekkürler tabi ki
  • 21-09-2012, 18:13:30
    #9
    İşe yaramadığına dair bir şey yazsaydınız, nerede nasıl sorun çıktığını belirtseydiniz yine yardımcı olurduk ama 2 gündür bu konuyu takip ediyorum en ufak mesaj dahi yazmadınız. Siz bilirsiniz