Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
38
Cevap
6255
Tıklama
0
Öne Çıkarma
Cevap: PHP ile sayfa içeriğinin bir kısmını çekmek (2. sayfa)
M
11 yıl
Çavuş

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.




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

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.


Bu mesaja 1 cevap geldi.

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

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 >
Bu mesaja 1 cevap geldi.
M
11 yıl
Çavuş

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


Bu mesaja 1 cevap geldi.

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

Dostum, pek bilgim yok kodları tam yazabilirmisin acaba, tabi vaktin varsa.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @mertcane
G
11 yıl
Yüzbaşı

en üstten başlayarak sunucuları alta iniyor


Bu mesaja 1 cevap geldi.

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

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



Bu mesaja 1 cevap geldi.

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

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

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

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




Bu mesajda bahsedilenler: @zekaigulin
N
11 yıl
Yarbay

Yarına kadar çözülmezse bakayım ben de.



< Bu ileti mini sürüm kullanılarak atıldı >

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

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.




Bu mesajda bahsedilenler: @mertcane
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



M
11 yıl
Çavuş

 

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


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @BucaYer6
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 >

T
5 yıl
Yarbay

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