我想要做的是'分页'。但是,我不想使用数据库,因为我从来没有这样做过,而且我现在不想放弃并转而使用它们,因为XML可以完成我想要的所有工作。
我的代码如下:
$files = glob('include/articles/*.xml');
foreach($files as $file){
$xml = new SimpleXMLElement($file, 0, true);
}
我已经尝试过这些:XML pagination with PHP,PHP XML pagination和Pagination Filtered XML file并且没有取得任何成果。我也尝试了很多Javascript'分页'脚本,但仍然没有。
总而言之:我有四篇文章(有更多内容要添加),我希望每页显示2篇文章。以下信息将从xml文件中“拉出”:ID,TITLE,CONTENT,PICTURE,AUTHOR,DATE,执行$ xml-> id等等。有谁知道这样做的方法?因为我已经花了四个小时(格林尼治标准时间凌晨4点04分)并且发现任何有效的东西。 (如果我发现任何有用的东西,我会确保用工作代码包装更新问题,那里还有其他人也需要帮助。)
答案 0 :(得分:0)
首先,定义您希望文章显示的order
。即哪篇文章在第1页上,哪一篇在第2页,等等。这很重要,因为order
将是您的分页算法的基础。请注意,glob()
不保证以任何特定顺序返回结果,这意味着订单可以更改从一个脚本调用到另一个(特别是当您添加新文章时) - 几乎肯定不是你想要的。
然后第二步是引入另一个变量,它是您网址的一部分,表示您所在的实际网页(number
)。 URL查询字符串是放置此信息的自然选择,因此您的网址如下:article.php?page=1
。在PHP端,您可以使用$_GET
超全局来检索查询字符串参数。
第三,每当您链接到article.php
脚本时,都要使用新样式网址。此外,验证输入 - 特别是当您还希望基于此参数显示当前页面时(或者最终会出现注入漏洞)。这也意味着你想要一个默认值(如果值无效/错误/或由于某种原因根本没有提供)。
最后,根据两个关键信息过滤您的文章:w .r.t文章的order
。页面number
和页码:即计算应出现在当前页面上的实际文章。