Şimdi Ara

PHP ile sayfa içeriğinin bir kısmını çekmek (2. sayfa)

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: önceki 12
Sayfaya Git
Git
Giriş
Mesaj
  • Hocam yukarıda yazdığım örnekte $serverName[1] ve $serverStatus[2] kullanarak gerekli bilgileri alabilirsin. preg_match işlemi yerine direk $baglan değişkenini yazdırabilirsiniz.
  • birde bişey sorucam sana.

     
    <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>


    bunların hangi sunucuya ait oldugunu nerden bilicez. ben geçen yaptım bu sekilde miller bakıma girdi ama baska server bakımda gösteriyordu :D
    onları bana söylersen bununla idare edicem simdilik. miller 20 , 21 , cobalt 24, 25 diye ayırabilirsen çok memnun olurum.




  • quote:

    mertcane


    Pek bildim yok dostum zahmet olmassa eğer, yapabilirseniz sevinirim.



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 13 Ağustos 2014; 16:45:26 >
  • $serverCount = count($serverName[1]); 

    for ($i=0; $i < $serverCount; $i++) {
    echo $serverName[1][$i].' - '.$serverStatus[2][$i].'<br />';
    }


    şeklinde kullanırsan

    Briggs (AU) - UP 
    Cobalt (EU) - UP
    Connery (US West) - UP
    Emerald (US East) - UP
    Miller (EU) - MAINT


    şeklinde çıktı vermesi lazım.
  • mertcane M kullanıcısına yanıt
    Dostum, pek bilgim yok kodları tam yazabilirmisin acaba, tabi vaktin varsa.
  • en üstten başlayarak sunucuları alta iniyor
  •  
    <?php
    /**
    * 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);

    $serverCount = count($serverName[1]);

    for ($i=0; $i < $serverCount; $i++) {

    echo $serverName[1][$i].' - '.$serverStatus[2][$i].'<br />';
    }

    // veya direk sayfanın kaynağını yazdırmak için echo $baglan yazabilirsin.
    ?>





  • mertcane M kullanıcısına yanıt
    Sayfa boş görünüyor

     

    <html>
    <head>
    <title>PlanetSide 2 - Server Status Script v3</title>
    </head>
    <body>


    <?php
    /**
    * 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 = 'https://forums.station.sony.com/ps2/status/print_status.php'){
    $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);

    $serverCount = count($serverName[1]);

    for ($i=0; $i < $serverCount; $i++) {

    echo $serverName[1][$i].' - '.$serverStatus[2][$i].'<br />';
    }

    // veya direk sayfanın kaynağını yazdırmak için echo $baglan yazabilirsin.


    ?>


    </body>
    </html>



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




  • Yok dostum öyle değil malesef.

    Normalde


    Miller = Medium Up
    Connery = Medium Up
    Helios = Low Up
    Emerald = Medium Up
    Cobalt = Medium Up
    Briggs = Low Up

    Bu şekilde olması lazım ama senin sıralamada farklı çıkıyor. yerleri değişik. böyle olunca sunucuların hangisi oldugunuda bilemiyorum.


    Medium Up
    Low Up
    Medium Up
    Medium Up
    Medium Up
    Low Up
  • Yarına kadar çözülmezse bakayım ben de.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Bende sorunsuz gözüküyor hocam : Test.
    Sunucunuzda cURL yüklü mü?
  • mertcane M kullanıcısına yanıt
    Evet dostum, destekliyor.

    Godaddy CURL
     
    Do you support cURL?
    Yes, we support cURL extensions on all of our hosting plans.

    cURL stands for client URL Library. In your PHP code, you can use cURL to connect and communicate with many different types of servers with many different types of protocols, and then use the information they provide in your website. You can use cURL to connect to an HTTP or HTTPS site from your hosting account.

    For example, you can use cURL to connect to a site with an RSS feed or to authorize.net's HTTPS payment processing gateway.
  • mertcane M kullanıcısına yanıt
    Tamam dostum oldu, sunucuda denemedim localhost'ta denemiştim CURL yokmuş sunucuya atınca çalıştı. Çok sağol, lakin son bir sıkıntım var. Ben burada sunucu isimlerini ve durumlarını ayıramazmıyım. Örnegin

    Miller icin
    $ServerNameMiller
    $ServerStatusMiller

    $ServerNameCobalt
    $ServerStatusCobalt


    çünkü ben bunları tablo aralarında kullanmak istiyorum. Forum sitesinde bir bölüme entegre edicem. Kendi forum sitesinde ki gibi.

    Örnek:http://ps2turkiye.com/index.php



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 14 Ağustos 2014; 23:20:47 >
  • Tamamdır arkadaşlar, hepinize ayrı ayrı teşekkür ederim. Sayenizde, hem bilgim arttı, hem en büyük sıkıntım ortadan kalktı.
    Sizin gibi yardım sever ve bilgiyi paylaşmasını bilen arkadaşların hala aramızda olması ayrı bir gurur verici nokta.
    Bilgi paylaştıkça güzel, umarım sizin gibi duyarlı ve paylaşımcı insanlar her daim aramızda olurlar...

    http://ps2turkiye.com/status/indexx.php
  •  

    $serverName

    [1] => Array
    (
    [0] => Briggs (AU)
    [1] => Cobalt (EU)
    [2] => Connery (US West)
    [3] => Emerald (US East)
    [4] => Miller (EU)
    )

    $serverStatus

    [2] => Array
    (
    [0] => UP
    [1] => UP
    [2] => UP
    [3] => UP
    [4] => UP
    )


    $serverName[1][3] yaptığın zaman Emerald (US East) yazılır.
    $serverStatus[2][3] yaptığın zaman Emerald (US East) için geçerli olan durum bilgisi yazılır. İncelemek için print_r($degisken) kullanabilirsin.

    Aynı tablo tasarımını veya bilgilerini kullanacaksan direk echo $baglan yaparak direk sayfa içeriğinide yazdırabilirsin.
  • mertcane M kullanıcısına yanıt
    Evet, bende öyle yapmıştım. Hatta renkleri bile çektim o şekilde. Sunucu durumlarından ziyade durum renkleride oldu. Tekrar teşekkürler

    http://www.ps2turkiye.com/status/

    Sunucu Adı
     
    [1][0], [1][1], [1][2], [1][3], [1][4]

    <?php echo $serverName[1][0]; ?>



    Sunucu Durum Rengi
     
    [1][0], [1][1], [1][2], [1][3], [1][4]

    Rengi <?php echo $serverStatus[1][0]; ?>


    Sunucu Durumu
     
    [2][0], [2][1], [2][2], [2][3], [2][4]

    <?php echo $serverStatus[2][0]; ?>



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 15 Ağustos 2014; 3:09:48 >
  • 6 Yıl Sonra...

    Yine aynı konu ile alakalı, ancak bu sefer yeni eklenen bir özellik için yardım istiyorum.
    Site:
    www.okolay.net
    PlanetSide 2 - Server Status Script v3
    http://www.okolay.net/serhat/ps2/status/v3.php



    Site içeriğini çektiğim kod.
    <?php 

    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('http://www.okolay.net/serhat/ps2/status/status.php');

    preg_match_all('@<td>(.*?)</td>@si', $baglan, $ReadData);

    echo"<br><br><br><br><br><br>";
    print_r($ReadData);
    echo"<br><br><br><br><br><br>";

    ?>


    Örnek sunucu

    <tr>
    <!-- Ceres / Server Name & Region -->
    <td class="alt1" style="text-align:center;"><?php echo $ReadData[1][5]; ?></td>
    <!-- Ceres / Population -->
    <td class="alt2" style="text-align:center;">
    <?php $ReadData[1][9]="low";
    switch ($ReadData[1][9]) {
    case "low": // Do not change this field :)
    echo "Düşük"; // You can change this field in your own language.
    break;
    case "medium": // Do not change this field :)
    echo "Orta"; // You can change this field in your own language.
    break;
    case "high": // Do not change this field :)
    echo "Yüksek"; // You can change this field in your own language.
    break;
    }
    ?>
    </td>
    <!-- Ceres / Status -->
    <td class="alt1" style="text-align:center;"><span style="color:white;">
    <?php $ReadData[1][18]="Up";
    switch ($ReadData[1][18]) {
    case "Up": // Do not change this field :)
    echo "Açık"; // You can change this field in your own language.
    break;
    case "Maint": // Do not change this field :)
    echo "Bakımda"; // You can change this field in your own language.
    break;
    case "Locked": // Do not change this field :)
    echo "Kilitli"; // You can change this field in your own language.
    break;
    }
    ?>
    </td>
    <!-- Ceres / Platform -->
    <td class="alt2" style="text-align:center;"><?php echo $ReadData[1][6]; ?></td>
    <!-- Ceres / Last Responsive -->
    <td class="alt1" style="text-align:center;">
    <?php $ReadData[1][7]="(.*?) minutes ago";
    switch ($ReadData[1][7]) {
    case "(.*?) minutes ago": // Do not change this field :)
    echo "(.*?) dakika önce"; // You can change this field in your own language.
    break;
    }
    ?>
    </td>
    </tr>



    Sorunum şu; x minute ago yazıyor. tek bir satırda olduğu için bunu Türkçe ye çeviremedim. Nasıl çekerim bu kodu 2 parçada onuda çözemedim.
    Yapmadık istediğim, x minute ago yu mümkünse 2 parçaya bölmek rakam ile yazıyı ayırmak ve öyle tercüme ettirmek. Yada farklı bir yöntemi varsa bilmiyorum anlayın işte beceremedim :D

    Siteyi ziyaret ederseniz birşeyler yapmaya çalıştım ancak beceremedim " (.*?) dakika önce " olarak görünüyor.

    Şimdiden teşekkürler arkadaşlar.



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 15 Nisan 2020; 22:30:25 >




  • Program içinde "(.*?) minutes ago" e bağlı bir koşul var. "hard coded" program sorun demektir.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Hocam onu çözdüm farklı bir sorunum var şu an.

    Edit: Tüm sorunları çözdüm yinede ilgin için teşekkürler.

    http://www.okolay.net/serhat/ps2/status/



    < Bu mesaj bu kişi tarafından değiştirildi Guazy -- 16 Nisan 2020; 20:38:53 >
  • 
Sayfa: önceki 12
Sayfaya Git
Git
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.