Eve API XML для PHP

0

Мне удалось создать базу данных mysql с элементами ItemID и Item. до сих пор все, что мне удалось сделать, это создать кнопку, которая откроет URL-адрес для eve api, который захватывает цены со стороны eve central. В настоящее время я не могу отправлять изображения.

Затем php-код генерирует api url, чтобы показывать цены, которые в конечном итоге мой план заключается в том, чтобы захватить максимальные цены покупки и минимальные цены продажи и выполнить следующие из них: если корму нужен предмет, он будет (maxbuyprice + Minsellprice)/2, если corp не нуждается в элементе, который будет вычисляться ((maxbuyprice + Minsellprice)/2) * 0.9

Моя проблема заключается в том, чтобы заставить php анализировать xml вместо отображения XML-документа - я сделал это для отладки или просмотра доступных данных.

для примера url, который я сгенерировал с помощью Veldspar: сгенерированный URL-адрес с использованием Veldspar - это имя элемента

Файл index.php:

<?php
include_once $_SERVER['DOCUMENT_ROOT'] .'/includes/db.inc.php';
$pagetitle = 'HoMs Asset Management System - Create Contract';
$pagedescription = 'HoMs Asset Management System for managing Corporation Contracts and Pricing';
include_once $_SERVER['DOCUMENT_ROOT'] .'/includes/access.inc.php';

include_once $_SERVER['DOCUMENT_ROOT'] .'/includes/ObjectClasses.inc.php';
include_once $_SERVER['DOCUMENT_ROOT'] .'/includes/helpers.inc.php';
include_once $_SERVER['DOCUMENT_ROOT'] .'/includes/EveCentral.inc.php';


if (isset($_POST['action']) and $_POST['action']=='View Eve Central Prices')

 {
    $itemname = html($_POST['ItemName']);
    calculateAskingPrice($itemname);

}


include 'createcontract.html.php';
?>

Файл db.inc.php:

<?php
//local dbstrings
//production dbstrings
$dbhost='localhost';
$dbusername='homedata1';
$dbpassword='EzPKfmxcTKAeSnDs';
$dbname='homdata';

Function connect2db()
{
    Global $dbhost;
    Global $pagetitle;
    Global $pagedescription;
    Global $mysqlport;
    Global $dbname;
    Global $dbusername;
    Global $dbpassword;
    Global $pdo;
    Global $error;
    Global $curNewsMessage;
    Global $logged;
    Global $ItemList;
    try
        {
            $pdo = new PDO('mysql:host=' .$dbhost .';dbname=' .$dbname .';port=' .$mysqlport, $dbusername, $dbpassword);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $pdo->exec('SET NAMES "utf8"');
        return TRUE;

        }
    catch (PDOException $dbconerr)
        {
            $pagetitle = 'Hom Asset Management - Database Connection Error';
            $pagedescription = 'There was a problem connecting to the database';
            $error = 'Unable to connect to the database server:' ."\n\n"
            .'The database in which this pages content relies on is unavailable or, for other reasons is not contactable' ."\n"
            .'I am liasing with my website host to get this resolved as quickly as possible. Please check later.' ."\n"
            .'sorry for any inconvenience' ."\n\n" .'This information may help to diagnose the problem: <br>' .$dbconerr;
            $logged = 'Sorry. The interactive areas are unavailable because the database is unavailable';
            $curNewsMessage = 'News message unavailable. ' ."\n" .' Database connection error';
            return FALSE;
        }

return TRUE;

}

Файл EveCentral.inc.php:

<?php

include_once $_SERVER['DOCUMENT_ROOT'] .'/includes/helpers.inc.php';
function calculateAskingPrice($Item)
{
// Connect to the database and search for the item posted
include_once $_SERVER['DOCUMENT_ROOT'] .'/includes/db.inc.php';
Global $pdo;
Global $itemname;


        if (connect2db())
        {
            $sql = "SELECT * FROM 'itemtypes' WHERE ItemName=:itemname";
            $s = $pdo->Prepare($sql);
            $s->bindValue(':itemname',$Item);
            $s->execute();

            $row = $s->fetch();
            if ($row > 0)
            {
            $itemid = html($row['ID']);
            $evecurl = 'http://api.eve-central.com/api/marketstat?typeid=' .$itemid .'&usesystem=30000142';
            header('Location: ' .$evecurl);
            }

            else
            htmlout('Item not found: ' . $itemname);

        }

        else
        {
            echo 'problem connecting to database';
        }


}

?>
Теги:
api-eveonline

2 ответа

0

Im немного comfused, вы хотите помощь разбора EVE API xml или минерала тянуть XML от eve центральной?

Если это цена XML, вот что я использую, это на моей главной странице...

    // Get Mineral Prices
GetCurrentMineralPrice();
$TritPrice = $ItemPrice[1];
$PyerPrice = $ItemPrice[2];
$MexPrice = $ItemPrice[3];
$IsoPrice = $ItemPrice[4];
$NocxPrice = $ItemPrice[5];
$ZydPrice = $ItemPrice[6];
$MegaPrice = $ItemPrice[7];
$MorPrice = $ItemPrice[8];

и это функция, которую она вызывает.

function GetCurrentMineralPrice() {

global $ItemPrice;

$xml = simplexml_load_file("http://api.eve-central.com/api/marketstat?typeid=34&typeid=35&typeid=36&typeid=37&typeid=38&typeid=39&typeid=40&typeid=11399&usesystem=30000142");
$i = 1;

foreach ($xml->marketstat->type as $child) {

    $ItemPrice[$i] = $child->buy->max;
    $i++;

}

return $ItemPrice;

}

Для максимальной цены продажи этой строки... $ ItemPrice [$ i] = $child-> sell-> min;

если вы хотите проанализировать EVE API, это совершенно другая история, которую я не освоил, так как каждый API XML отличается...

0

здесь я получил некоторую версию, как может помочь нам обоим:

$xml = simplexml_load_file('http://api.eve-central.com/api/marketstat?usesystem=30000142&hours=24&typeid=3683&minQ=10000');

echo $xml->marketstat->type->sell->min; // 257.99

Ещё вопросы

Сообщество Overcoder
Наверх
Меню