Rumah > pembangunan bahagian belakang > tutorial php > PHP不同页面间传递json的问题

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

WBOY
Lepaskan: 2016-06-23 14:12:31
asal
1191 orang telah melayarinya

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"]));

非常感谢。 

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan