0

我在 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
        );
}

谢谢你提供的所有帮助。对不起,如果我没有像我可能的那样雄辩,我希望你能原谅我的相对无知!

4

1 回答 1

1

据我了解,我将采用这种类型的解决方案:首先,如果您确实了解一点 OOP,请创建一个 Article 类。

在那之后,我会按照你的要求做:而不是创建一个数组(它实际上应该是一个类,(第一个数组,我不知道你是否意识到这一点),我会这样做大批 :

$data[$dateY][$dateM][$dateD]=$blogentry;

然后,您将所有文章按年分类,然后按月分类,然后按日分类,因此以您的请求结束变得非常简单。

编辑:当我说它应该是一个类时,我说的是这个数组:

array(
        (string)$title,
        array(
            (string)$dateY,
            (string)$dateM,
            (string)$dateD
        ),
        $entryParagraphs
    )

这通常是一个类的设计目的。

于 2013-07-12T12:47:00.890 回答