Eve API XML для PHP

Мне удалось создать базу данных MySQL с ItemIDs и типов элементов. до сих пор все, что мне удалось сделать, это сгенерировать кнопку, которая открывает URL-адрес Eve API, который захватывает цены из Eve Central. Я не могу в настоящее время публиковать изображения.

Затем php-код генерирует URL-адрес api, чтобы показать цены, которые в конечном итоге я планирую получить из максимальных цен покупки и минимальных продажных цен и выполнить на них следующие действия: если корпорации нужен элемент, то он будет (maxbuyprice + Minsellprice)/2 если корпорация не нуждается в предмете, вычисление будет ((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';
        }


}

?>

2 ответа

Я немного смущен, вам нужна помощь в разборе EVE API xml или минеральной тяги XML из Eve Central?

Если это 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 отличается...

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

$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
Другие вопросы по тегам