Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
38
Cevap
6263
Tıklama
0
Öne Çıkarma
PHP ile sayfa içeriğinin bir kısmını çekmek
G
11 yıl
Teğmen
Konu Sahibi

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.

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>

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





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

G
11 yıl
Teğmen
Konu Sahibi

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 >
Bu mesaja 1 cevap geldi.
G
11 yıl
Teğmen
Konu Sahibi

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 >
Bu mesaja 1 cevap geldi.
G
11 yıl
Teğmen
Konu Sahibi

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 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @zekaigulin
G
11 yıl
Teğmen
Konu Sahibi

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 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @zekaigulin
M
11 yıl
Çavuş

Bende sorunsuz gözüküyor hocam : Test.
Sunucunuzda cURL yüklü mü?


Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @BucaYer6
G
11 yıl
Teğmen
Konu Sahibi

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 >
Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @mertcane
G
11 yıl
Teğmen
Konu Sahibi

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



G
11 yıl
Teğmen
Konu Sahibi

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 >


Bu mesajda bahsedilenler: @mertcane
G
5 yıl
Teğmen
Konu Sahibi

6 Yıl Sonra...

Yine aynı konu ile alakalı, ancak bu sefer yeni eklenen bir özellik için yardım istiyorum.
Site: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 >

G
5 yıl
Teğmen
Konu Sahibi

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 >


Bu mesajda bahsedilenler: @vonderplanitz
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.