如何使用API​​生成表?

时间:2014-10-07 02:44:42

标签: php html api html-table

我有兴趣在我的网站上制作一个小部件类型的表格。 他们有一个名为“invasions”的公共API,位于here

我希望使用他们提供的信息生成一个表。有许多网站已经使用此API并生成包含该信息的表格,例如website

我知道如何创建使用MySQL数据生成的表。

但是,我从未制作过使用API​​数据生成的表格。

有人可以让我开始吗?

2 个答案:

答案 0 :(得分:1)

这样的东西会起作用。您可以根据需要进行设置和设计/构建它。

    $url = "https://www.toontownrewritten.com/api/invasions";
    $data = json_decode(file_get_contents($url));

    print "<table>";
    foreach ($data->invasions as $title => $inv) {
        print "<tr>";

        print "<td>{$title}</td><td>{$inv->progress}</td><td>{$inv->asOf}</td>";

        print "</tr>";
    }
    print "</table>";

您也可以使用curl之类的内容来运行http请求来获取数据。完全取决于你如何实现它。

答案 1 :(得分:0)

以下是如何使用PHP DOM创建动态表的示例:

$dom = new DOMdocument();
$table = $dom->createElement('table'); // or use: $dom->loadHTML($existing_html);

// Create field values. 
$col1 = clone $col2 = clone $col3 = clone $col4 = clone $col5 = $dom->createDocumentFragment();
$col1->appendXML('<img src="some/image/example.png" />');
$col2->appendXML('<div>example of html within row</div>);
$col3->appendXML('<div>another row</div>');
$col4->appendXML('<div>and another</div>');
$col5->appendXML('<div>last column</div>');
// Note: You can use createElement, instead of appendXML if you don't want to use html inside the columns. 

// Create columns and append content.
$td1 = $dom->createElement('td'); // col1
$td1->appendChild($col1);
$td2 = $dom->createElement('td'); // col2
$td2->appendChild($col2);
$td3 = $dom->createElement('td'); // col3
$td3->appendChild($col3);
$td4 = $dom->createElement('td'); // col4
$td4->appendChild($col4);
$td5 = $dom->createElement('td'); // col5
$td5->appendChild($col5);

// Create row and append columns.
$tr = $dom->createElement('tr');
$tr->appendChild($td1)->setAttribute('class', 'some classes');
$tr->appendChild($td2)->setAttribute('class', 'some classes');
$tr->appendChild($td3)->setAttribute('class', 'some classes');
$tr->appendChild($td4)->setAttribute('class', 'some classes');
$tr->appendChild($td5)->setAttribute('class', 'some classes');

// Append row to table, and table to root document.
$table->appendChild($tr);
$dom->appendChild($table);
$output = $dom->saveHTML();
echo $output;