我在PHP方面不是特别有经验,但我一直在尝试为朋友的网站创建一个基本博客。我认为现在最简单的事情就是使用静态文件,所以我使用XML来存储博客条目。我已经设法完美地设置了它,因为我可以按照我的要求显示帖子。但是,我现在想要一个导航栏,它允许我根据日期选择帖子,就像大多数博客一样。这些文件简单地命名为1.xml,2.xml,3.xml等,所以我可以遍历它们。这是显示数据数组如何组织的代码(它是数组中的数组,因此第一级将等于文件名+1中的数字)。所以我在如何根据这些数据创建导航栏(ul,li等)时遇到了很多麻烦。据推测,我需要多年时间才能独一无二,然后多年来的几个月才变得独一无二,而且还有几天,那么我可以将每个标题(显然都是链接)置于正确的日期之下。
$data = array();
for ($i = 1; $i <= $numberOfPosts; $i++) {
$filename = './blogentries/' . $i . '.xml';
if (!file_exists($filename))
throw new Exception();
$blogentry = simplexml_load_file($filename);
$title = $blogentry->title;
$dateD = $blogentry->date->day;
$dateM = $blogentry->date->month;
$dateY = $blogentry->date->year;
if (strlen($dateY) === 2) $dateY = '20' . $dateY;
$entryParagraphs = $blogentry->entry->children();
$data[] = array(
(string)$title,
array(
(string)$dateY,
(string)$dateM,
(string)$dateD
),
$entryParagraphs
);
}
感谢您提供任何帮助。对不起,如果我没有像往常那样雄辩,我希望你能原谅我的相对无知!
答案 0 :(得分:1)
根据我的理解,我会选择这种解决方案: 首先,如果您确实知道一点OOP,请创建一个文章类。
在那之后,我会按照你的要求做点什么: 而不是创建一个数组(实际上应该是一个类,(第一个数组,我不知道你是否意识到这一点),我会做这个数组:
$data[$dateY][$dateM][$dateD]=$blogentry;
然后,按照年份,月份,日期对所有文章进行分类,结束您的请求变得非常简单。
编辑: 当我说它应该是一个类时,我在谈论这个数组:
array(
(string)$title,
array(
(string)$dateY,
(string)$dateM,
(string)$dateD
),
$entryParagraphs
)
这通常是课程的设计目标。