• 28-10-2012, 08:53:16
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Herkese selamlar

    <?
    //bot
    $site = file_get_contents("http://meteor.gov.tr/tahmin/il-ve-ilceler.aspx?m=ISTANBUL#sfB");
    
    $tarih = explode('<th id="ctl00_cp_sayfa_thmGun1" class="arkaTrh">',$site);
    $tarih = explode('</th>',$tarih[1]);
    
    $sicaklik = explode('<td><em class="renkMax">',$site);
    $sicaklik = explode('</em>',$sicaklik[1]);
    
    $uyari = explode('BAŞLANGIÇ YERİ',$site);
    $uyari = explode('BİTİŞ YERİ',$uyari[1]);
    
    $ruzgar = explode('<br /><em>',$site);
    $ruzgar = explode('</em>',$ruzgar[1]);
    
    
    ?>
    
    Güncelleme: <? echo strip_tags ($tarih[0]); ?><br>
    Sıcaklık: <? echo strip_tags ($sicaklik[0]); ?> <br /> Durum: <? echo strip_tags ($uyari[0]); ?> <br /> Ruzgar Hızı: <? echo strip_tags ($ruzgar[0]); ?>
    Şeklinde bir bot yazdım. $uyari olarak verdiğim değişkendeki verileri alamıyorum. Sitenin kaynak kodlarına girecek olursanız

    <td rowspan="2"><img src="../FILES/imgIcon/99/e_72x72t_png/-2.png" alt="KUVVETLİ RÜZGAR" title="KUVVETLİ RÜZGAR" /> </td>
    şeklinde bir satır var (tabi hava durumuna göre değişyor bu <th>Sıcaklık</th> satırının altında) o satırdaki title="KUVVETLİ RÜZGAR" veya herneyse güncel hava olayı da o. bende $uyari değişkenime onu almayı baya bi denedim ama beceremedim. KUVVETLİ RÜZGAR (veya artık oradaki durum herneyse) yazısını çekmek için yardım reca ederim
  • 28-10-2012, 11:26:20
    #2
    $string = '<img src="https://www.r10.net/FILES/imgIcon/99/e_72x72t_png/-2.png" alt="KUVVETLİ RÜZGAR" title="KUVVETLİ RÜZGAR" />';
    
    preg_match('/<img.*title="([^\"]*)".*>/', $string, $matches);
    
    print_r($matches);
  • 28-10-2012, 11:51:59
    #3
    teşekkür ederim.

    Şöyle bir sonuç veriyor:

    Array ( [0] => Buraya resmi çekiyor [1] => KUVVETLİ RÜZGAR )

    Buraya sadece KUVVETLİ RÜZGAR yazısını almak istiyorum.

    ayrıca buradaki KUVVETLİ RÜZGAR değişebilen bir şey

    benim buradan anladığım
    <td rowspan="2"><img src="../FILES/imgIcon/99/e_72x72t_png/-2.png" alt="KUVVETLİ RÜZGAR" title="KUVVETLİ RÜZGAR" /> </td>
    satırındeki imaj dosyası duruma göre değişiyor ve ona göre bir alt ve title oluşturuyor. bana lazım olan kısmı alt veya title bölümü
  • 28-10-2012, 18:51:44
    #4
    $matches[1] istediğin sonucu verir.
  • 28-10-2012, 19:25:41
    #5
    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    $matches[1] istediğin sonucu verir.
    $matches[1] istediğim sonucu kısmen verdi.

    sitede o bölge değişiyor. mesela

    $string = '<img src="../FILES/imgIcon/99/e_72x72t_png/-2.png" alt="KUVVETLİ RÜZGAR" title="KUVVETLİ RÜZGAR" />'; 
    preg_match('/<img.*title="([^\"]*)".*>/', $string, $matches);
    sabah aldığım koddu şimdi hava bulutlu olmuş ve o satır

    <img src="../FILES/imgIcon/99/e_72x72t_png/-23.png" alt="ÇOK BULUTLU" title="ÇOK BULUTLU" />
    şeklinde değişmiş. ama her ne değişirse değişsin ../FILES/imgIcon/99/e_72x72t_png/ bölümü hiç değişmiyor.

    Acaba o değişmeyen bölümü kabul edip arkasından gelecek olan title veya alt kodlarından sonrasını almak mümkün olurmu?

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 19:25:41 -->-> Daha önceki mesaj 19:19:26 --

    aslında şimdi birşey daha farkettim.

    sitede benim almak istediğim bilgiler

    <div id="divSonDurum">
    
    .......
    
    </div>
    aralığında ama benim bilgim tabi bunu almaya yetsede parçalamaya yetmez

    tabi neden bu kadar uğraşıyorum da gidip hazır yapılmış bişey almıyorum? Neden basit aslında bu tip şeyler yaparak öğreniyorum
  • 28-10-2012, 21:34:59
    #6
    Aşağıdaki kodlar işinizi görür sanırım.

    <?php
    
    $str = file_get_contents("http://meteor.gov.tr/tahmin/il-ve-ilceler.aspx?m=ISTANBUL#sfB");
    $str = explode('<div id="divSonDurum">', $str);
    $str = explode('</div>',$str[1]);
    
    preg_match('/<img.*title="([^\"]*)".*>/', $str[0], $matches); 
    
    echo $matches[1];  
    
    ?>
  • 28-10-2012, 21:55:26
    #7
    Görmez mi hocam çok teşekkür ederim.

    Belki birine lazım olur diye tüm kodları veriyorum. Meteorolojiden son hava durumunu veren bir bot lazım olursa birine (kime lazım olur bilemedim ) alsın güle güle kullansın

    İstanbul için hava durumu<br /><br />
    
    <?
    //bot
    $site = file_get_contents("http://meteor.gov.tr/tahmin/il-ve-ilceler.aspx?m=ISTANBUL#sfB");
    
    $tarih = explode('<br .>',$site);
    $tarih = explode('</td>',$tarih[1]);
    
    $sicaklikgunduz = explode('<td><em class="renkMax">',$site);
    $sicaklikgunduz = explode('</em>',$sicaklikgunduz[1]);
    
    $sicaklikgece = explode('<td><em class="renkMin zemimeZ">',$site);
    $sicaklikgece = explode('</em>',$sicaklikgece[1]);
    
    $str = file_get_contents("http://meteor.gov.tr/tahmin/il-ve-ilceler.aspx?m=ISTANBUL#sfB"); 
    $str = explode('<div id="divSonDurum">', $str); 
    $str = explode('</div>',$str[1]); 
    preg_match('/<img.*title="([^\"]*)".*>/', $str[0], $matches);  
    
    $ruzgar = explode('<br /><em>',$site);
    $ruzgar = explode('</em>',$ruzgar[1]);
    ?>
    
    Güncelleme: <? echo date("d/m/Y"); echo ' '; echo strip_tags ($tarih[0]); ?><br>
    Sıcaklık: <? echo strip_tags ($sicaklikgunduz[0]); ?><? echo strip_tags ($sicaklikgece[0]); ?> <br /> Durum: <? echo $matches[1];  ?> <br /> Ruzgar Hızı: <? echo strip_tags ($ruzgar[0]); ?>
    $site = file_get_contents ve $str = file_get_contents
    satırlarındaki linki istediğiniz şehire göre revize edersiniz.
  • 28-10-2012, 22:23:03
    #8
    Son verdiğiniz kodda iki defa file_get_contents e gerek yok, şu şekilde verebilirsiniz..

    İstanbul için hava durumu<br /><br />
    
    <?php
    
    $site = file_get_contents("http://meteor.gov.tr/tahmin/il-ve-ilceler.aspx?m=ISTANBUL#sfB"); 
    
    $tarih = explode('<td class="sond_zaman">',$site); 
    $tarih = explode('</td>',$tarih[1]); 
    
    $sicaklikgunduz = explode('<td><em class="renkMax">',$site); 
    $sicaklikgunduz = explode('</em>',$sicaklikgunduz[1]); 
    
    $sicaklikgece = explode('<td><em class="renkMin zemimeZ">',$site); 
    $sicaklikgece = explode('</em>',$sicaklikgece[1]); 
    
    $durum = explode('<div id="divSonDurum">', $site);  
    $durum = explode('</div>',$durum[1]);  
    preg_match('/<img.*title="([^\"]*)".*>/', $durum[0], $matches);   
    
    
    $ruzgar = explode('<br /><em>',$site); 
    $ruzgar = explode('</em>',$ruzgar[1]); 
    ?> 
    
    Güncelleme: <?php echo date("d/m/Y"); echo ' '; echo strip_tags($tarih[0]); ?><br> 
    Sıcaklık: <?php echo strip_tags ($sicaklikgunduz[0]); ?><?php echo strip_tags ($sicaklikgece[0]); ?> <br /> Durum: <?php echo $matches[1];  ?> <br /> Ruzgar Hızı: <?php echo strip_tags ($ruzgar[0]); ?>
  • 28-10-2012, 22:35:58
    #9
    Bir düzeltme de ben yapayım güncelleme zamanında çift kayıt vardı

    son güncel hal buyrun kullanın

    İstanbul için hava durumu<br /><br /> 
    
    <?php 
    
    $site = file_get_contents("http://meteor.gov.tr/tahmin/il-ve-ilceler.aspx?m=ISTANBUL#sfB");  
    
    $tarih = explode('<td class="sond_zaman">',$site);  
    $tarih = explode('</td>',$tarih[1]);  
    
    $sicaklikgunduz = explode('<td><em class="renkMax">',$site);  
    $sicaklikgunduz = explode('</em>',$sicaklikgunduz[1]);  
    
    $sicaklikgece = explode('<td><em class="renkMin zemimeZ">',$site);  
    $sicaklikgece = explode('</em>',$sicaklikgece[1]);  
    
    $durum = explode('<div id="divSonDurum">', $site);   
    $durum = explode('</div>',$durum[1]);   
    preg_match('/<img.*title="([^\"]*)".*>/', $durum[0], $matches);    
    
    
    $ruzgar = explode('<br /><em>',$site);  
    $ruzgar = explode('</em>',$ruzgar[1]);  
    ?>  
    
    Güncelleme: <?php echo strip_tags($tarih[0]); ?><br>  
    Sıcaklık: <?php echo strip_tags ($sicaklikgunduz[0]); ?><?php echo strip_tags ($sicaklikgece[0]); ?> <br /> Durum: <?php echo $matches[1];  ?> <br /> Ruzgar Hızı: <?php echo strip_tags ($ruzgar[0]); ?>