2

我正在使用 json_decode 解码一个长 JSON 文件,我想每页显示 20 个结果。像这样;

echo ($decodedJson['Workers'][0]['Name'])
echo ($decodedJson['Workers'][1]['Name'])
                  .
                  .

我遇到困难的部分是,在解码所有这些 JSON 之后,当我转到 Page=2 ($page = $_GET["Page"];) PHP 重新执行 json_decode 并且它花费了很多时间。我知道这是一个非常菜鸟的问题,但请帮我解决这个问题。

我如何只解码一次,构造我的对象或数组一次并在每一页上使用它?

还有其他在页面之间导航的方式吗?我正在使用一个函数来学习当前的 URL,更改“Page=X”部分。并用它回显一个“”。

提前致谢。

4

2 回答 2

4

由于 http 的无状态特性,您必须在每次请求时对其进行解码。除非您将其保留在某个地方,以便它可用于下一个请求。

根据数据的性质/结构/范围,您可以将其存储在文件中、(一个或多个)数据库表中或$_SESSION超全局中。

关于您的第二个问题,您也可以使用$_SESSION它,甚至cookie,这样您的脚本就会“记住”用户的页面,即使他们导航离开并再次返回。

于 2013-10-08T16:55:57.873 回答
0

设置 $_SESSION['data'] = JSON 文件,然后在后续页面上,参考您的会话数据并使用页码来确定您要显示的 JSON 数据的子集。假设每页 10 个结果,一些逻辑如下:

$start = (pageNum * 10) - 11;
for($i = $start; $i < $start + 10; $i++) {
// process output
}
于 2013-10-08T16:59:28.483 回答