PHP Gametracker (Regex match,Replace)

PHP

7
12543

Konu

#1
Kod:
   $curl = curl_init();

    curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.gametracker.com/server_info/93.123.18.5:27017/top_players/",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Cache-Control: no-cache",
        "Host: www.gametracker.com",
        "accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
        "accept-language: en-US,en;q=0.5",
        "upgrade-insecure-requests: 1",
        "user-agent: Mozilla/5.0"
    ),
    ));

    $response = curl_exec($curl);
    $err = curl_error($curl);

    curl_close($curl);

    if ($err) {
    echo "cURL Error #:" . $err;
    } else {
    //echo $response;
    } 

-Curl ile url'den sayfa verisi çekilir.

Kod:
$str = preg_replace ( 
        '/[\n\s]/' , 
        '' , 
        $response); 

-Sayfa verisindeki boşluk ve yeni satırlar silinir. $response stringi içerisindeki regexte belirtilen boşluk veya yeni satırları siler(değiştirir).

Kod:
$re = '/<td>[^"]*"\/player\/(.*?)\/[^<]*<\/a><\/td><td>&nbsp;<\/td><td>(.*?)<\/td><td>(.*?)<\/td><td>(.*?)<\/td>/m'; 
-Gametrackerdan alınan veri için regex patterni hazırlanır.

Kod:
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); 
-Patterne göre istenen veriler $matches arrayi içerisinde toplanır.

Kod:
echo 'Name Score Time Score/Min <br>';
    for($i=0;$i<10;$i++) {
        for($w=1;$w<5;$w++) {
            echo urldecode($matches[$i][$w]). ' ';
        }
        echo '<br>';
    } 

-Veriler yazdırılır.

BÜTÜN KOD:
Kod:
<?php
    $curl = curl_init();

    curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.gametracker.com/server_info/93.123.18.5:27017/top_players/",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Cache-Control: no-cache",
        "Host: www.gametracker.com",
        "accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
        "accept-language: en-US,en;q=0.5",
        "upgrade-insecure-requests: 1",
        "user-agent: Mozilla/5.0"
    ),
    ));

    $response = curl_exec($curl);
    $err = curl_error($curl);

    curl_close($curl);

    if ($err) {
    echo "cURL Error #:" . $err;
    } else {
    //echo $response;
    }
    
    $str = preg_replace ( 
        '/[\n\s]/' , 
        '' , 
        $response);

    $re = '/<td>[^"]*"\/player\/(.*?)\/[^<]*<\/a><\/td><td>&nbsp;<\/td><td>(.*?)<\/td><td>(.*?)<\/td><td>(.*?)<\/td>/m';

    preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

    echo 'Name Score Time Score/Min <br>';
    for($i=0;$i<10;$i++) {
        for($w=1;$w<5;$w++) {
            echo urldecode($matches[$i][$w]). ' ';
        }
        echo '<br>';
    }
?>

Cevapla
Cevapla
#3
Teşekkürler
Cevapla
#4
Teşekkürler
Cevapla
#5
Teşekkürler
Uygun Fiyata Uygun TasarımlarFacebook  / Steam
Cevapla
#6
Rica Ederim.
Cevapla
#7
Teşekkürler
Cevapla
#8
@"JesusWGlasses" Rica ederim
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task
Kayıt Ol