我正在使用 PHP 从 XML 文件输出数据。它默认按时间顺序排列,我想颠倒一下。这可能用 PHP 实现吗?如果是,怎么办?
这是我的 page和代码:
$file = 'http://www.gostanford.com/data/xml/events/m-baskbl/2010/index.xml';
$xml = simplexml_load_file($file);
foreach ($xml as $event_date) {
if(!empty($event_date->event['vn']) && !empty($event_date->event['hn']) && !empty($event_date->event['vs']) && !empty($event_date->event['hs']))
{
echo '<li>';
echo '<h3>', $event_date->event['vn'], ' vs ', $event_date->event['hn'], '</h3>';
echo '<p><strong>', $event_date->event['vs'], ' - ', $event_date->event['hs'], '</strong></p>';
echo '<p>', date('F j, Y', strtotime($event_date['date'])), '</p>';
echo '</li>';
}
}
感谢您的帮助!
最佳答案
正如第一个回答所指出的,这对大型 XML 文档来说可能不是一个好主意。 PHP 5.1.2 及更高版本的最简单和最可移植的代码可能是使用 SimpleXML。它可能已经内置到早期的 PHP 版本中,但它是 5.1.2 之后的标准。
<?php
$file = 'http://www.gostanford.com/data/xml/events/m-baskbl/2010/index.xml';
$xml = simplexml_load_file($file);
if ($xml === false) {
echo "Couldn't load file\n";
exit (1);
}
$xmlArray = array();
foreach ($xml as $event_date) $xmlArray[] = $event_date;
$xmlArray = array_reverse($xmlArray);
foreach ($xmlArray as $event_date) {
if(!empty($event_date->event['vn']) && !empty($event_date->event['hn']) && !empty($event_date->event['vs']) && !empty($event_date->event['hs']))
{
echo '<li>';
echo '<h3>', $event_date->event['vn'], ' vs ', $event_date->event['hn'], '</h3>';
echo '<p><strong>', $event_date->event['vs'], ' - ', $event_date->event['hs'], '</strong></p>';
echo '<p>', $event_date['date'], '</p>';
echo '<p>', $event_date->event['local_time'], '</p>';
echo '</li>';
}
}
?>
关于php - 使用 PHP 反转 XML 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5969662/