<?php

require 'resourcewrapper.class.php';
$wrapper = new ResourceWrapper();
$wrapper->setDatabaseOpenings('http://www.shredderchess.com/online/playshredder/fetch.php?action=book&fen=$url_fen$&la=en&bookcode=p40', '1.0', true, 'parserOpeningsToJSON', true);
$wrapper->setDatabaseEndings('http://www.shredderchess.com/online/playshredder/fetch.php?action=egtb&fen=$url_fen$s', '1.0', false, 'parserEndingsToJSON', true);
$wrapper->rest();
// Parse the text result from the distant website to get a JSON document.
function parserOpeningsToJSON($text, $fen)
{
    $lines = explode("\n", $text);
    $moves = array();
    foreach ($lines as $line) {
        $infos = explode('#', $line);
        if (count($infos) == 14) {
            $move_exp = explode('...', $infos[0]);
            $move = "null";
            if (count($move_exp) > 0) {
                $move = $move_exp[1];
            }
            $percentage = $infos[7] / 1000;
            $wins = round($infos[11] / $infos[6], 3);
            $draws = round($infos[12] / $infos[6], 3);
            $looses = round($infos[13] / $infos[6], 3);
            $nb_play = (int) $infos[6];
            if ($move != "null") {
                $moves[] = array('move' => $move, 'probatowin' => $wins, 'probatonull' => $draws, 'nb' => $nb_play);
            }
        }
    }
    return json_encode($moves);
Beispiel #2
0
<?php

require 'resourcewrapper.class.php';
$wrapper = new ResourceWrapper();
$wrapper->setDatabaseOpenings('http://chessok.com/onlineserv/opening/connection.php?timestamp=' . time(), '1.0', false, 'parserOpeningsToJSON', false);
$wrapper->setDatabaseEndings('http://chessok.com/onlineserv/endbase/connection.php?timestamp=' . time(), '1.0', true, 'parserEndingsToJson', true);
$wrapper->rest();
// Transforme le xml renvoye par chessok en JSon et l'affiche.
function parserOpeningsToJSON($xmlstr, $fen)
{
    // On regarde qui va jouer (blancs ou noirs).
    preg_match("/^[^ ]* ([bw]) .*\$/", $fen, $matches);
    if (count($matches) == 2) {
        $whiteToPlay = $matches[1] == 'w';
    }
    $moves = new SimpleXMLElement($xmlstr);
    // On calcule toutes les stats necessaires pour le serveur central.
    $movesArray = array();
    foreach ($moves->MoveList->Item as $item) {
        $nbWWhite = $item->WhiteWins;
        $nbWBlack = $item->BlackWins;
        $nbDraws = $item->Draws;
        $nb = $nbWWhite + $nbWBlack + $nbDraws;
        // Cast pour eviter de se retouver avec un SimpleXMLObject au lieu d'un string.
        $move = (string) $item->Move;
        if ($nb > 0) {
            if ($whiteToPlay) {
                $probaToWin = round($nbWWhite / $nb, 3);
            } else {
                $probaToWin = round($nbWBlack / $nb, 3);
            }