Heim  >  Artikel  >  Backend-Entwicklung  >  PHP不同页面间传递json的问题

PHP不同页面间传递json的问题

WBOY
WBOYOriginal
2016-06-23 14:12:311125Durchsuche

PHP

gettest.php:


$value["name"]= urlencode("myname");
$value["pass"]= urlencode("pass888");
$value["age"]=30;

$js_value = json_encode($value);

$url="http://127.0.0.1:8080/get.php?id=100&value=$js_value";  
$html = file_get_contents($url);  

echo $html;
?>  

get.php:


$x =  json_decode(urldecode($_GET["value"]));
echo $x;
?>

在IE中运行: http://127.0.0.1:8080/gettest.php
运行后得到的是空白,应该能把json的数据打印出来吧

回复讨论(解决方案)

你在 gettest.php 中 echo $url; 看一下参数是否正确
get.php 中 json_decode 后的是对象,所以 echo $x; 是不妥当的
另外不需要 urldecode,你 echo $_GET["value"]; 就可知道

在 gettest.php 中 echo $url;   结果是: 
http://127.0.0.1:8080/get.php?id=100&value={"name":"myname","pass":"pass888","age":30} 

在get.php中, echo $_GET["value"];   结果是:
{\"name\":\"myname\",\"pass\":\"pass888\",\"age\":30} 

我的目的是希望在get.php中吧 jsong string 还原为json对象,并打印出来。   所以我修改了下代码
getp.php代码修改为: 

$x =  json_decode(urldecode($_GET["value"]));
//echo $_GET["value"];
var_dump($x);
?>

显示是: NULL .    这个好像不应该啊

我在同一个php文件中调用 json_encode,  json_decode  就没问题。 不同页面下就不行了,不知怎么回事

在get.php中, echo $_GET["value"];   结果是:
{\"name\":\"myname\",\"pass\":\"pass888\",\"age\":30} 

那么就需要 stripslashes 而不是 urldecode
$x =  json_decode(stripslashes($_GET["value"]));

非常感谢。 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn