Şimdi Ara

PHP ile sayfa içeriğinin bir kısmını çekmek

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
39
Cevap
1
Favori
6.105
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Merhabalar arkadaşlar.
    Bir oyunun sunucu durumlarını kendi sitemde göstermek istiyorum. Bunu IFRAME ile yapınca malesef arkaplanlarıda geliyor siteyle hiç mi hiç olmuyor. Ben içeriğini çekmek istiyorum lakin pek fazla bilgim yok bu konuda.

    www.planetside-universe.com
    PlanetSide 2 Server Status - PlanetSide Universe
    http://www.planetside-universe.com/server_status.php
    bu sitedeki sunucu durumlarını gösteren tablodan mesela kendi yapacağım tabloya sadece bazı yerleri çekmesini istiyorum.

    Medium, Low, Up yazan yerleri çekmek istiyorum bunu nasıl yapabilirim. Örneğin şöyle birşey istiyorum.

    <table>
    <tr>
    <td>Sunucu Konumu</td>
    <td>Sunucu Adı</td>
    <td>Sunucu Nüfusu</td>
    <td>Sunucu Durumu</td>
    </tr>
    <tr>
    <td>Avrupa</td>
    <td>Miller</td>
    <td>İçerik Çek</td>
    <td>İçerik Çek</td>
    </tr>
    </table>



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 10 Ağustos 2014; 23:32:02 >







  • birkaç dk bekler isen yapıyım hocam sana onu
  • ** buyur usta çalışıyor


     
    <html>
    <head>
    <title>çek gitsin be aga :)</title>
    </head>
    <body>
    <?php
    $site=file_get_contents("http://www.planetside-universe.com/server_status.php");

    preg_match_all('@<span style="color:(.*?);">(.*?)</span>@si',$site,$sutun);

    //echo '<pre>';
    //print_r($sutun);
    //echo '</pre>';

    echo $sutun[2][0];
    echo '<br>';
    echo $sutun[2][2];
    echo '<br>';
    echo $sutun[2][4];
    echo '<br>';
    echo $sutun[2][6];
    echo '<br>';
    echo $sutun[2][8];
    echo '<br>';
    echo $sutun[2][10];
    ?>
    </body>
    </html>


  •  
    <html>
    <head>
    <title>çek gitsin be aga :)</title>
    </head>
    <body>
    <?php
    $site=file_get_contents("http://www.planetside-universe.com/server_status.php");

    preg_match_all('@<span style="color:(.*?);">(.*?)</span>@si',$site,$sutun);
    preg_match_all('@<span style="color:(.*?);">(.*?)</span>@si',$site,$durumup);


    echo $sutun[2][0]." ".$durumup[2][1];
    echo '<br>';
    echo $sutun[2][2]." ".$durumup[2][3];
    echo '<br>';
    echo $sutun[2][4]." ".$durumup[2][5];
    echo '<br>';
    echo $sutun[2][6]." ".$durumup[2][7];
    echo '<br>';
    echo $sutun[2][8]." ".$durumup[2][9];
    echo '<br>';
    echo $sutun[2][10]." ".$durumup[2][11];

    ?>
    </body>
    </html>



    cıktısı :
     
    Medium Up
    Low Up
    Medium Up
    Medium Up
    Medium Up
    Low Up


    bu bırazdaha duzenli halı kolay gelsin usta




  • Tamamdır çok teşekkür ederim.

    http://ps2turkiye.com/status/v3.php güzel görünüyor.



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 11 Ağustos 2014; 7:54:25 >
  • + bir şey daha sorucam, mesela bu up yazan yeri çektikten sonra Açık. Down yazan kısmıda kapalı diye değişebilirmiyiz. Bu mümkünmü?

    Kısaltıyorum,

    Site verisi UP
    Site verisi DOWN
    Site verisi UNKNOWN
    Site verisi Medium
    Site verisi Low
    Site verisi High

    Bunların çıktısını

    AÇIK
    KAPALI
    BİLİNMİYOR
    ORTA
    DÜŞÜK
    YÜKSEK

    diye değişebilirmiyiz siteden gelecek veriye göre.



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 11 Ağustos 2014; 6:31:26 >
  • if($durumup[2][1]=="Up")
    {
    echo "Bu alan kapalı";

    }
    else
    {

    echo "bu alan acık";


    }

    // eger iki tane durum istiyorusanız açık kapalı dıye bunu yapabılırsınız .

    ama
    AÇIK
    KAPALI
    BİLİNMİYOR
    ORTA
    DÜŞÜK
    YÜKSEK
    bunları diyorsanız

    $durumup[2][1];

    switch($durumup)
    {

    case "UP";
    echo "kapalı";
    break;

    case "Closed";
    echo "Bu alan kapalı";
    break;

    .
    .
    .
    .
    .
    .
    .
    .
    diye gider hocam
    }
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • 2 kısımda yer alacak o istediklerim.

    Sunucu Durumlarında Açık, Kapalı, Bilinmiyor
    Sunucu Nüfusundan Düşük, Orta, Yüksek

    Açık/Kapalı olan alanı yaptımda diğer alanı yapamadım.
    DEMO:http://ps2turkiye.com/status/v3.php


     
    switch($population)
    {
    case "High";
    echo "Yüksek";
    break;
    case "Medium";
    echo "Orta";
    break;
    case "Low";
    echo "Düşük";
    break;


    Böyle yapınca oldu.


     
    <?php
    $serverStatus[2][1]="UP";
    switch ($serverStatus[2][1]) {
    case "UP":
    echo "AÇIK";
    break;
    case "LOCKED":
    echo "KİLİTLİ";
    break;
    case "MAINT":
    echo "BAKIMDA";
    break;
    }
    ?>



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 15 Ağustos 2014; 3:11:35 >




  • sorunsuz çalışıyor galıba hersey normal gibi
  • Bu site oyun sunucuların durumlarını doğru göstermiyor. Farklı bir site var bakalım onu denicem, orda durumları doğru görünüyor. Yapamazsam sizden yardım rica edebilirim tekrar. İlginiz için teşekkürler
  • Rica ederim , sitenin doğruluk veya sapma payını bilemiyorum , size elimden gelen kadarıyla yardım etmeye çalışırım.
  • Buyur dostum, hedefhttps://forums.station.sony.com/ps2/index.php sitemiz burası.

    Kırmızı alanlardaki verileri çekmek istiyorum.http://www.ps2turkiye.com/server-status.png Ben beceremedim doğrusu, işi ehline bırakalım :D

    Sayfa içeriğine baktımda şöyle bir kod yapısı var. Acaba oraya gelecek kodları bulabilirmiyiz. Javascript ile çağırıyor sanırım içeriği.

     
    <style>
    .ssUnit{
    width: 292px;
    border-right: 1px solid rgba(9, 123, 133, 0.27);
    float: left;
    padding: 0 15px;
    color: #8EACAE;
    margin-top: 7px;
    margin-bottom: 5px;
    height: 40px;
    }
    .ssName{
    float: left;
    padding-bottom: 5px;
    }
    .ssStatus{
    float: right;
    }
    </style>

    <script>
    var serverRes;
    $.ajax({
    url: 'https://forums.station.sony.com/ps2/status/print_status.php',
    success: function(data) {
    serverRes = data;
    document.getElementById('serverStatus').innerHTML=serverRes;
    }
    });

    </script>

    <div id="serverStatus" class="serverStatus">Buraya sunucu tablosu gelecek.</div>


    <script>
    $(document).ready(function(){
    $.get("https://forums.station.sony.com/ps2/data/status/current_status.txt",function(data){
    var srvstatus = jQuery.parseJSON(data);

    if(srvstatus.status == "" || srvstatus.status == "Normal" || srvstatus.status == "normal"){
    $('#serverMessage').css('display', 'none');
    return;
    }

    var statstring = "Status: " + srvstatus.timestamp + " - " + srvstatus.status;
    $("#serverMessage").html(statstring);

    });
    });
    </script>

    <div id="serverMessage" style="padding-top: 25px; color: red; font-size: 16px; font-weight: bold;">Buraya sunucu mesajı gelecek.</div>



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 12 Ağustos 2014; 0:10:29 >




  • dizinin boş donmesinin sebebi div taglarının içinde olmasından dolayı kaynaklanıyor bu yüzden dizi boş donuyor

    bunu yapmak hem zahmetli hemde beni aşan bir durum java dosyasının geldiği yere baktım ama adamlar session ile başka sayfaya yönlerndiriyor yazı başka bir site bulanursa

    <span> tagları arasında bunu ilk site gibi çekebilirz
  • Valla zahmet olmazsa yapalım dostum. Tek eksiğimiz bu sunucu durumlarını sitemizde göstermek. allah razı olsun

    http://ps2turkiye.com/status/ss.php


     
    <html>
    <head>
    <title>çek gitsin be aga :)</title>
    <style>
    .ssUnit{
    width: 292px;
    border-right: 1px solid rgba(9, 123, 133, 0.27);
    float: left;
    padding: 0 15px;
    color: #8EACAE;
    margin-top: 7px;
    margin-bottom: 5px;
    height: 40px;
    }
    .ssName{
    float: left;
    padding-bottom: 5px;
    }
    .ssStatus{
    float: right;
    }
    </style>
    </head>
    <body>

    <?php
    $server=file_get_contents("https://forums.station.sony.com/ps2/status/print_status.php");

    preg_match_all('@Briggs (AU)</div><div class="ssStatus"><span style="color: green;">(.*?)</span>@si',$server,$status1);
    preg_match_all('@Cobalt (EU)</div><div class="ssStatus"><span style="color: green;">(.*?)</span>@si',$server,$status2);
    preg_match_all('@Connery (US West)</div><div class="ssStatus"><span style="color: green;">(.*?)</span>@si',$server,$status3);
    preg_match_all('@Emerald (US East)</div><div class="ssStatus"><span style="color: green;">(.*?)</span>@si',$server,$status4);
    preg_match_all('@Miller (EU)</div><div class="ssStatus"><span style="color: green;">(.*?)</span>@si',$server,$status5);


    ?>

    <div style="height: 55px; margin: 0 auto; width: 978px; border: 1px solid #00464C; margin-top: 5px;">

    <div class="ssUnit">
    <div class="ssName">Briggs (AU)</div>
    <div class="ssStatus">
    <span style="color: green;"><?php echo "$status1"; ?></span>
    </div>
    <div style="clear: both;"></div>

    <div class="ssName">Cobalt (EU)</div>
    <div class="ssStatus">
    <span style="color: green;"><?php echo "$status2"; ?></span>
    </div>
    <div style="clear: both;"></div></div>


    <div class="ssUnit">
    <div class="ssName">Connery (US West)</div>
    <div class="ssStatus">
    <span style="color: green;"><?php echo "$status3"; ?></span>
    </div>
    <div style="clear: both;"></div>

    <div class="ssName">Emerald (US East)</div>
    <div class="ssStatus">
    <span style="color: green;"><?php echo "$status4"; ?></span>
    </div>
    <div style="clear: both;"></div>
    </div>


    <div class="ssUnit" style="border-right: none;">
    <div class="ssName">Miller (EU)</div>
    <div class="ssStatus">
    <span style="color: green;"><?php echo "$status5"; ?></span>
    </div>
    <div style="clear: both;"></div>
    </div>
    </body>
    </html>



    böyle bisey denedim ama array yazıyor.



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 12 Ağustos 2014; 3:52:16 >




  • <html> 
    <head>
    <title>PlanetSide 2 - Server Status Script v3</title>
    <link type="text/css" href="css/status.css" rel="stylesheet" media="screen" />
    </head>
    <body>
    <?php
    $servers=file_get_contents("https://forums.station.sony.com/ps2/status/print_status.php");
    preg_match_all('@<span style="color: (.*?);">(.*?)</span>@si',$servers,$population);
    preg_match_all('@<span style="color: (.*?);">(.*?)</span>@si',$servers,$status);

    echo '<br><br>';

    print_r($population);

    echo '<br><br>';

    print_r($status);

    ?>
    </body>
    </html>



    Ben yapmaya çalışıyorumda. Print_r ile göstermeye çalışıyorum ama Array içi boş görünüyor.



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 13 Ağustos 2014; 10:51:02 >




  • div içinde classları divlerde

    span vs içinde dğil o yzden boş çıkıyor
  • HTTP_USER_AGENT bilgisi olmadığı için Forbidden veriyor.


    /** 
    * Verilen bilgilere göre cURL kütüphanesini kullanarak baglantı yapar.
    *@ param string $adres Bağlantı yapılacak sayfanın adresi.
    *@ param string $ref HTTP_REFERER bilgisinde gösterilecek adres.
    *@ return string HTML olarak sayfayı geri yollar.
    */


    function baglan($adres,$ref = 'http://www.google.com/'){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $adres);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch,CURLOPT_REFERER,$ref);
    curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch,CURLOPT_TIMEOUT,0);
    $data = curl_exec($ch);
    return $data;
    }



    $baglan = baglan('https://forums.station.sony.com/ps2/status/print_status.php');

    preg_match_all('@<div class="ssName">(.*?)</div>@si', $baglan, $serverName);
    preg_match_all('@<span style="color:(.*?);">(.*?)</span>@si', $baglan, $serverStatus);



    < Bu mesaj bu kişi tarafından değiştirildi mertcane -- 13 Ağustos 2014; 13:45:11 >




  • mertcane M kullanıcısına yanıt
    Dostum, valla sayfa boş görünüyor naptımsa veri çekip görüntüleyemedim.

    Fonksiyon.php
     
    <?php

    function baglan($url){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl,CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    $data = curl_exec($curl);
    curl_close($curl);
    return str_replace(array("\n", "\t", "\r"), null, $data);
    }

    ?>


    index.php
     
    <?php require "fonksiyon.php" ;?>
    <html>
    <head>
    <title>PlanetSide 2 - Server Status Script v3</title>
    </head>
    <body>
    <?php

    $baglan = baglan("https://forums.station.sony.com/ps2/status/print_status.php");
    preg_match('#<div style="height: 55px(.*?)</div></div>#', $baglan, $status);

    print_r($status);
    ?>
    </body>
    </html>



    Sonuç
     
    Array ( )



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 13 Ağustos 2014; 16:01:46 >




  • güvendin başka site yok mu eger yok sa php de kocabaşlara danışcan artık
  • Valla ne yapacam bilmiyorum, her neyse dostum sağol ilgi ve alakan için. Artık 2018 de falan biri bi çözüm bulur buna, konuyu hortlatırlar.
  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.