我有兴趣在我的网站上制作一个小部件类型的表格。
他们有一个名为“invasions
”的公共API,位于here
我希望使用他们提供的信息生成一个表。有许多网站已经使用此API并生成包含该信息的表格,例如website
我知道如何创建使用MySQL数据生成的表。
但是,我从未制作过使用API数据生成的表格。
有人可以让我开始吗?
答案 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;