ホームページ  >  記事  >  バックエンド開発  >  PHP の異なるページ間での json の受け渡しの問題

PHP の異なるページ間での json の受け渡しの問題

WBOY
WBOYオリジナル
2016-06-23 14:12:311126ブラウズ

PHP

gettest.php:


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

$js_value = json_encode($value)

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

echo $html;

get.php:


$x = json_decode($_GET["value"]); $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}

私の目的は、jsong文字列をget.phpの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}

それなら、urldecode の代わりにストリップスラッシュが必要です

$x = json_decode(stripslashes($_GET["value"]));

ありがとうございます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。