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"]));
ありがとうございます。