Php Tarihte Bugün Botu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    arkinfes
    arkinfes's avatar
    Kayıt Tarihi: 07/Haziran/2007
    Erkek

    yeni bir proje üstünde çalışıyorum sitemde tarihte bugün olaylarını çekmek istedim ve bunun sonucu bir bot ürettim tahribat ile paylaşmak istedim :)

    http://www.tarihtebugun.org/ adresinden verileri çekiyorum .

     olayları çeken botumun kodlarından önce bazı arkadaşlar çektikleri verilerde tr karakter problemi yaşamasın diye yazdığım trk karakter fonksiyonumu paylaşıcam. bu kodumuzu ayrı bir php dosyasına yazıp kaydettikten sonra include ile bot sayfamızda çekmeyi unutmayalım ama isteyenler direk bot sayfasındada kullanabilir.

    function trkar($tr){ 
    $hallet=iconv("ISO-8859-9","UTF-8",$tr); 
    return $hallet; 
    }

     

    burda veri tabanına verileri eklerken izmir'in gibi veriler varsa ' karakteri hata verdirmesin diye olusturduğum fonksiyon:

    function botal($text) {  //sql inj saldırısına karşı filitre fonksiyonu yazdım
    $text=stripslashes ($text);
    $text=strtolower($text); 
    $text= mysql_escape_string(trim(strip_tags($text)));
    
    return $text;    
        } 	

     

    Burda ise tarihteki olayları çeken botumuz:

     

    header("Content-Type: text/html; charset=UTF-8");
    for ( $say=1 ; $say < 31 ; $say++ )//for döngüsü amaç ise tarihin günün sayısını belirleme ama unutmayın mesela ocak ayını cekiyorsak ocak ayı 31 gün dür siz $say < 31 yazan yere 32 yazıcaksınız her tarih için yapmanız gerekir.yani her tarih kaç günse onun bir üst rakamı
    { 
    $site = file_get_contents('http://www.tarihtebugun.org/tarihte_bu_ay/'.$say.'-nisan.html'); //burda hangi tarihi cekip kaydedecekseniz o tarihi yazın mesela -nisan yazıyor onun yerine -ocak yazın ama tr karakter kullanmayın
    $aranan =('@(.*?)@si');
    $aranan2 =('@(.*?)@si');
    $sayi = preg_match_all($aranan, $site, $ara);
    $sayi2 = preg_match_all($aranan2, $site, $ara2);
    for($a=0; $a<$sayi; $a++){
    $bilgi= ucwords(botal(trkar($ara[1][$a])));
    $tarih=trkar($ara2[1][$a]);
    $olay="olay"; //ben burda tablomda olay kısmında olayları olay olarak ,doğumları doğum olarak kayıt tutturuyorum ki ona göre listeleteyim
    $tarih2="4";//burdaki olayım ise ayın numarası yani ocaksa 1 subatsa 2 yazılıcak
    $soruekle= mysql_query("INSERT INTO tarihte SET tarih='$tarih',aciklama = '$bilgi' , olay = '$olay', ay= '$tarih2'") or die ('hata4 '.mysql_error().'');
    }}

     

     

    Açıklama:

    • yukarıda her ayı ayrı ayrı çekmeniz lazım mesela ocak acıkyı cekerken ( $say=1 ; $say < 31 ; $say++ ) kırmızı olan yer ay kaç günse onun 1 rakam fazlasını yani 31 günse 32 , 30 günse 31 yazıyoruz.
    • $site = file_get_contents('http://www.tarihtebugun.org/tarihte_bu_ay/'.$say.'-nisan.html'); buraki kırmızı kısmıda hangi ayı çekiyorsak onu düzenleyin türkçe karaktersiz ağustosu cekiyorsanız agustos yazın.
    • $tarih2="4";  burdaki kırmızı alanı ise ocak ise 1 subat ise 2 yani ayın sayısı .


    Sadece bu alanları düzelterek veri tabanınıza kaydı ekleyebilirsiniz. tabiki şimdi diceksiniz teker teker her ay için bu düzenlemeliri yapmak yerine aylarıda döngüyle atayılım açık sözlü olmak gerekirse pek fazla kafa yoramadım bu noktadan sonra :D peki neden tarih iki değişkenine ayın sayısını aktarıyoruz ana sayfada mesela tarihte bugun olaylarını listelerken

    date fonksiyonu ile sadece date("m"); şeklinde o anki tarihin ayının cekip veri tabanında sorgulatmak için ben böyle bir yol izledim ...

    Gerekli veri tabanı sütunlarımız ise 

    id= prkey ve a_I olucak

    baslik= long text

    tarih= date

    ay=date

    pek güzel paylaşım olmadı anlatmam cok zayıf kusura bakmayın sadece paylasmak istedim cnk ben yazılım mühendisi değilim konservatuvar ogrencisiyim bos zamanlarımda php ile ilgilenebiliyorum dün geceden beri bu bot işiyle cok ugraştım becerincede cok mutlu olup sizle paylaştım :)

     


    Do majör soylu ve açık sözlü , Do minör patetik , Re majör parlak , Re minör melankolik , Mi bemol majör soylu ve patetik , aydinlik ama soylu ve karamsar tonmu lazim ozaman; mi majör , Mi minör doğanin ilk minör tonu olmasina karsin biraz melankoliktir , Fa majör karışıktır , Fa minör hepsinden patetiktir , Fa Diyez majör iste güçtür çünkü degiştirgeçlerle asiri yuklenmistir , Si majör parlak ve oyun bozannn :))
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PHP-SEO Developer
    Erdem
    Erdem's avatar
    Kayıt Tarihi: 04/Haziran/2002
    Erkek

    Olsun eline saglik.  Ayrica tebrik ederim.

     

    Bende kimyagerim :)) takilma ona buna devam

    Erdem tarafından 28/Eyl/14 17:35 tarihinde düzenlenmiştir

    Php for SEO nun ardından Php for Gcode (CNC)
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    arkinfes
    arkinfes's avatar
    Kayıt Tarihi: 07/Haziran/2007
    Erkek
    Erdem bunu yazdı

    Olsun eline saglik.  Ayrica tebrik ederim.

     

    Bende kimyagerim :)) takilma ona buna devam

    cok saol hocam :)) simdi wikipediadan bisiler cekmem lazim onun apisi varmis onu ayikmaya calisiyorum :) 

    arkinfes tarafından 28/Eyl/14 18:58 tarihinde düzenlenmiştir

    Do majör soylu ve açık sözlü , Do minör patetik , Re majör parlak , Re minör melankolik , Mi bemol majör soylu ve patetik , aydinlik ama soylu ve karamsar tonmu lazim ozaman; mi majör , Mi minör doğanin ilk minör tonu olmasina karsin biraz melankoliktir , Fa majör karışıktır , Fa minör hepsinden patetiktir , Fa Diyez majör iste güçtür çünkü degiştirgeçlerle asiri yuklenmistir , Si majör parlak ve oyun bozannn :))
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    _PesimisT_
    _PesimisT_'s avatar
    Kayıt Tarihi: 27/Nisan/2008
    Erkek

    Hacı abi sen o tuttuğun db'yi yayımla yeter :)


    Bu dahil; tüm genellemeler yanlıştır! Yolcu; Kendi Yolunda.... Şükür biz Allahtan başka sahibi olmayanlarız!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fikibok
    KaptaN
    KaptaN's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 30/Ağustos/2005
    Erkek

    boyşe güzel  paylaşımlar önemli ,  eline sağlık.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    arkinfes
    arkinfes's avatar
    Kayıt Tarihi: 07/Haziran/2007
    Erkek

    Metrodayim eve varinca undera soyleyim konuyu duzenlesin eklesin linki veririm ama saglam upload sitesi olsun link ucmasin bari


    Do majör soylu ve açık sözlü , Do minör patetik , Re majör parlak , Re minör melankolik , Mi bemol majör soylu ve patetik , aydinlik ama soylu ve karamsar tonmu lazim ozaman; mi majör , Mi minör doğanin ilk minör tonu olmasina karsin biraz melankoliktir , Fa majör karışıktır , Fa minör hepsinden patetiktir , Fa Diyez majör iste güçtür çünkü degiştirgeçlerle asiri yuklenmistir , Si majör parlak ve oyun bozannn :))
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    CeeMoo
    CeeMoo's avatar
    Kayıt Tarihi: 30/Ekim/2014
    Erkek

    Emeğinize sağlık Paylaşım için Teşekkürler upload için yandex iş görür.


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

    al hocam bir dizi yaratıp foreach dongusu ile yapabilirsin

     

    <?php
    header("Content-Type: text/html; charset=UTF-8");
    $aylar = array('ocak','subat','mart','nisan','mayis','haziran','temmuz','agustos','eylul','ekim','kasim','aralik');
    foreach($aylar as $ay)
    {
    for ( $say=1 ; $say < 31 ; $say++ )//for döngüsü amaç ise tarihin günün sayısını belirleme ama unutmayın mesela ocak ayını cekiyorsak ocak ayı 31 gün dür siz $say < 31 yazan yere 32 yazıcaksınız her tarih için yapmanız gerekir.yani her tarih kaç günse onun bir üst rakamı
    { 
    $site = file_get_contents('http://www.tarihtebugun.org/tarihte_bu_ay/'.$say.'-'.$ay.'.html'); //
    $aranan =('@<span class="olaytarihindex2">(.*?)</span>@si');
    $aranan2 =('@(.*?)<span class="olaytarihindex2">@si');
    $sayi = preg_match_all($aranan, $site, $ara);
    $sayi2 = preg_match_all($aranan2, $site, $ara2);
    for($a=0; $a<$sayi; $a++){
    $bilgi= ucwords(botal(trkar($ara[1][$a])));
    $tarih=trkar($ara2[1][$a]);
    $olay="olay"; //ben burda tablomda olay kısmında olayları olay olarak ,doğumları doğum olarak kayıt tutturuyorum ki ona göre listeleteyim
    $tarih2="4";//burdaki olayım ise ayın numarası yani ocaksa 1 subatsa 2 yazılıcak
    $soruekle= mysql_query("INSERT INTO tarihte SET tarih='$tarih',aciklama = '$bilgi' , olay = '$olay', ay= '$tarih2'") or die ('hata4 '.mysql_error().'');
    }
    }
    }
    Realist tarafından 11/Ara/14 15:06 tarihinde düzenlenmiştir

    ..
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    $months = array("ocak", "subat", "mart", "nisan", "mayis", "haziran", "temmuz", "agustos", "eylul", "ekim", "kasim", "aralik");
    
    //Buraya da bu yılı çekip, ona göre eğer 4 yılda 1 ise
    //Şubatı 29 diye ayarlayabilirsiniz, ona üşendim :)
    
    $days = array("31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31");
    
    for($i=0; $12; $i++){
    
     $link[0][$i] = $months[$i];
    
     $link[1][$i] = $days[$i];
    
    }
    
    for($i=0; $i<count($link[0]); $i++){
    
     for($say=1; $say<$link[1][$i]; $say++){
    
      $site = file_get_contents('http://www.tarihtebugun.org/tarihte_bu_ay/'.$say.'-'.$link[0][$i].'.html');
    } }
    ozgunlu tarafından 11/Ara/14 16:44 tarihinde düzenlenmiştir

    Hello, i am nothing. I come from Neverland.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

    php kodu işime yaramaz lakin böyle bir site arıyordum şu aralar

    hatta konu açacaktım tarihteki olayları loglayan bi site var mı diye

    site güzel oldu eyvallah

    php ve mysql yerine python + csv kullanarak bi bot da ben oluşturayım bari

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    aksata
    aksata's avatar
    Kayıt Tarihi: 28/Aralık/2009
    Erkek

    misal verilerin içinde linkler varsa nasıl sadece yazıya çevirirsiniz


    Bazıları özgürlüğü sadece kendileri gibi düşünenlere reva görüyor...
Toplam Hit: 1967 Toplam Mesaj: 13