我正在使用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”部分。并用它回应一个“”。
提前致谢。
答案 0 :(得分:4)
由于http stateless性质,您必须在每次请求时对其进行解码。除非你坚持到某个地方,否则它可以用于下一个请求。
根据数据的性质/结构/范围,您可以将其存储在文件,(一个或多个)数据库表或$_SESSION
超全局中。
关于您的第二个问题,您也可以使用$_SESSION
,甚至cookies,这样您的脚本就会“记住”用户的页面,即使他们离开又返回。
答案 1 :(得分:0)
设置$ _SESSION ['data'] = JSON文件,然后在后续页面上,参考您的会话数据并使用页码来确定您要显示的JSON数据的子集。假设每页有10个结果,有些逻辑如下:
$start = (pageNum * 10) - 11;
for($i = $start; $i < $start + 10; $i++) {
// process output
}