PHP - 通过URL传递包含JSON数据的数组,并使用$ _REQUEST进行检索

时间:2017-06-29 15:35:38

标签: php http

您好我遇到问题,我尝试将JSON数组通过网址传递到另一个网页,然后使用$ _REQUEST检索该值。我在这里看了其他类似的问题,并尝试使用http_build_query让它工作,但仍有问题,并希望有人可以帮助我。

这是包含我试图传递的JSON对象的Array。该数组包含在变量$ validationReport:

Array([0] => stdClass Object([resourceUri] => file:/home/testFile.txt#//@statements.12/@typeList.0/@enumLiterals.11 [severity] => WARNING [lineNumber] => 333 [column] => 9 [offset] => 7780 [length] => 24 [message] => Name should be less than 20 characters))

这是我建立的网址:

<a href='../../validationReport.php?fileName=$fileName&fileSize=$fileSize&validationReport=$validationReport' target='_blank'>View Validation Report</a>

我尝试在不同的页面上使用这些值,并使用以下代码检索值:

 if (isset($_REQUEST['fileName']) && isset($_REQUEST['fileSize']) && isset($_REQUEST['validationReport'])) {
    showReport($_REQUEST['fileName'], $_REQUEST['fileSize'], $_REQUEST['validationReport']);
 } 

fileName和fileSize都设置正常,我可以获取它们的值,但$ _REQUEST [&#39; validationReport&#39;]永远不会设置。任何人都可以帮我弄清楚如何通过URL传递这个值,以便$ _REQUEST [&#39; validationReport&#39;]将包含带有上面JSON对象的数组。

1 个答案:

答案 0 :(得分:4)

您无法发送对象或在webPath上显示它

试试这个:

json_encode();将其编码为字符串

<a href='../../validationReport.php?fileName=$fileName&fileSize=$fileSize&validationReport=json_encode($validationReport[0])' target='_blank'>View Validation Report</a>

然后将其解码回对象

showReport($_REQUEST['fileName'], $_REQUEST['fileSize'], json_decode($_REQUEST['validationReport']));