0

在有人问之前;我用谷歌搜索了我的“问题”,我还查看了“可能已经有你答案的问题”,但它们都不起作用。

我想做的是“分页”。但是,我不想使用数据库,因为我从来没有使用过,我宁愿不放弃,现在就去使用它们,因为 XML 可以满足我的所有需求。

我的代码如下:

$files = glob('include/articles/*.xml');
    foreach($files as $file){
        $xml = new SimpleXMLElement($file, 0, true);
}

我已经尝试过这些:使用 PHP 的XML分页、PHP XML 分页分页过滤的 XML 文件,但一无所获。我也尝试了很多Javascript“分页”脚本,但仍然没有。

所以总结一下:我有四篇文章(更多要添加),我想每页显示 2 篇文章。以下信息将从 xml 文件中“提取”:ID、标题、内容、图片、作者​​、日期,其余部分通过 $xml->id 等操作。有谁知道这样做的任何方法?因为我花了过去四个小时(格林威治标准时间凌晨 4 点 04 分),但还没有发现任何可行的方法。(如果我发现任何可行的方法,我会确保使用工作代码更新问题,以确保还有其他人也需要帮助。)

4

1 回答 1

0

首先定义order您希望文章出现的位置。即哪篇文章在第 1 页,哪一篇在第 2 页,等等。这很重要,因为这order将是您的分页算法的基础。请注意,glob()不保证以任何特定顺序返回结果,这意味着顺序可以从脚本的一次调用更改为另一个(特别是当您添加新文章时)——几乎可以肯定不是您想要的。

然后第二步是引入另一个变量,它是您的 URL 的一部分,表示您所在的实际页面 ( number)。URL 查询字符串将是放置此信息的自然选择,因此您的 URL 看起来像:article.php?page=1。在 PHP 端,您可以使用$_GET超全局来检索查询字符串参数。

article.php第三,在链接到脚本时使用新样式的 URL 。此外,验证输入——尤其是当您还想根据此参数显示当前页面时(否则您最终会遇到注入漏洞)。这也意味着您想要一个默认值(以防该值无效/错误/或由于某种原因根本没有提供)。

最后,根据两个关键信息过滤您的文章:order文章的页面number和页码:即计算应该出现在当前页面上的实际文章。

于 2013-08-12T03:18:28.607 回答